Помогите с кодом

Тема в разделе "NetCat", создана пользователем al430, 22 июн 2011.

  1. al430

    al430 Постоялец

    Регистр.:
    31 окт 2010
    Сообщения:
    94
    Симпатии:
    9
    Есть код:
    Он делает превью картинок из Vid_ в Vid_Small
    PHP:
    ";
    $LargeImgField = Array('Vid1','Vid2','Vid3');
    $SmallImgField = Array('Vid1Small','Vid2Small','Vid3Small');

    // значения визуальных настроек
    $res = $db->get_var("SELECT CustomSettings FROM Sub_Class WHERE Sub_Class_ID=$cc");
    $res ? eval("\$cc_settings $res") : $cc_settings = NULL );
    // значения визуальных настроек по умолчанию
    $res = $db->get_var("SELECT CustomSettingsTemplate FROM Class WHERE Class_ID=$classID");
    eval("
    \$default_cc_settings $res");
    $j = sizeof($cc_settings);
    for(
    $i=0; $i<$j$i++) if(!$cc_settings[$i]$cc_settings[$i] = $default_cc_settings[$i];

    if(
    $cc_settings['ThumbsOn']){
       
      
    $ImgFields = array_merge($SmallImgField,$LargeImgField);
      
      for(
    $i=0; $i<sizeof($SmallImgField); $i++){
       if ( 
    ${'f_'.$LargeImgField[$i]}[name] ){
          
    $ResizeImgFields[] = $LargeImgField[$i];
          
    $ResizeImgFieldsSmall[] = $SmallImgField[$i];
       }
     }
     
      if( isset(
    $ResizeImgFields) ){
        function nc_img_resize(
    $src_img$dest_img$width$height$fill_color=0xFFFFFF, $quality=90){
          if ( !file_exists(
    $src_img) ) return false;
         
    $img_size = getimagesize($src_img);
         if ( 
    $img_size === false ) return false;
          
          
    $img_format = strtolower( substr($img_size['mime'], strpos($img_size['mime'], '/') + 1) );
          
    $func_imgcreatefrom = 'imagecreatefrom'.$img_format;
          if ( !function_exists(
    $func_imgcreatefrom) ) return false;
          
          
    $x_ratio = $width / $img_size[0];
         
    $y_ratio = $height / $img_size[1];
          
          
    $min_ratio = min($x_ratio$y_ratio);
         
          
    $new_width = ( $x_ratio == $min_ratio ? $width  : floor($img_size[0] * $min_ratio) );
         
    $new_height = ( $x_ratio != $min_ratio ? $height : floor($img_size[1] * $min_ratio) );
          
    $new_left = ( $x_ratio == $min_ratio ? 0 : floor(($width - $new_width) / 2) );
          
    $new_top = ( $x_ratio != $min_ratio ? 0 : floor(($height - $new_height) / 2) );
         
          
    $gd_dest_img = imagecreatetruecolor($width$height);
         
    $gd_src_img = $func_imgcreatefrom($src_img);
          
          imagefill(
    $gd_dest_img, 0, 0, $fill_color);
         imagecopyresampled(
    $gd_dest_img$gd_src_img$new_left$new_top, 0, 0, $new_width$new_height$img_size[0]$img_size[1]);
          imagejpeg(
    $gd_dest_img$dest_img$quality);
         
          imagedestroy(
    $gd_dest_img);
         imagedestroy(
    $gd_src_img);
          
          return true;
        }
       
    $Class_ID = &$current_cc['Class_ID'];
       
        
    $res = $db->get_results( "SELECT Field_ID,Field_Name FROM Field WHERE Class_ID=$Class_ID AND (Field_Name IN('".join("''",$ImgFields)."'))", ARRAY_N);
       foreach(
    $res As $v$Field_ID[$v[1]] = $v[0];
       foreach(
    $ResizeImgFields As $v$ResizeField_ID[$v] = $Field_ID[$v];
        
        for(
    $i=0; $i<sizeof($SmallImgField); $i++){
         
    $LargeToSmallFielID[$Field_ID[$LargeImgField[$i]]] = $Field_ID[$SmallImgField[$i]];
         
    $IDToName[$Field_ID[$SmallImgField[$i]]] = $SmallImgField[$i];
        }
       
    $res = $db->get_results("SELECT Real_Name,File_Path,Virt_Name,Field_ID FROM Filetable WHERE Message_ID=$message AND (Field_ID IN(".join("",$ResizeField_ID)."))", ARRAY_A);
       
        foreach(
    $res As $row){
          
    $SmallImg['Real_Name'] = 'small_'.$row['Real_Name'];
          
    $SmallImg['Virt_Name'] = md5(time().$SmallImg['Real_Name']);
          
    $SmallImg['File_Path'] = $row['File_Path'];
         
          if( nc_img_resize("
    $DOCUMENT_ROOT/cms_files$row[File_Path]$row[Virt_Name]", "$DOCUMENT_ROOT/cms_files$SmallImg[File_Path]$SmallImg[Virt_Name]", (int)$cc_settings['ImgWidth'], (int)$cc_settings['ImgHeight'], hexdec('0x'.$cc_settings['ImgFillColor']), (int)$cc_settings['ImgQuality']) ){
           
    $SmallImg['File_Size'] = filesize("$DOCUMENT_ROOT/cms_files$SmallImg[File_Path]$SmallImg[Virt_Name]");
           
    $SmallImg['Field_ID'] = $LargeToSmallFielID[$row['Field_ID']];
            
    $db->query("DELETE FROM Filetable WHERE Message_ID=$message AND Field_ID=$SmallImg[Field_ID]");
           
    $db->query("INSERT INTO Filetable(Real_Name,Virt_Name,File_Path,File_Type,File_Size,Message_ID,Field_IDVALUES('$SmallImg[Real_Name]','$SmallImg[Virt_Name]','$SmallImg[File_Path]','image/jpeg',$SmallImg[File_Size],$message,$SmallImg[Field_ID])");
           
    $sql[] = $IDToName[$SmallImg['Field_ID']]."='$SmallImg[Real_Name]:image/jpeg:$SmallImg[File_Size]'";      
          }     
        }
       
    $db->query("UPDATE Message$Class_ID SET ".join(', ', $sql)." WHERE Message_ID=$message" );
      }
    }

    ob_end_clean();
    header("
    Location$goBackLink&inside_admin=$inside_admin");
    echo "
    Как вставить еще две картинки с одной картинки Vid1 но с другими параметрами размеров напрмер ImgWidthSp и ImgHeightSp
     
  2. al430

    al430 Постоялец

    Регистр.:
    31 окт 2010
    Сообщения:
    94
    Симпатии:
    9
    C предыдущим разобрался.
    Прошу помощи у знающих в другом:
    Есть ячейка таблицы $f_Nomer , допустим необходимо в процессе добавления или изменения записать туда данные взятые из других ячеек таблицы добавляемого объекта.
    Например Message_ID и Sub_Class_ID, как построить запрос я знаю listQwery и так далее, но вот где и как это прописывать не понимаю.
     
  3. NewS

    NewS

    Регистр.:
    15 авг 2008
    Сообщения:
    255
    Симпатии:
    84
    В условиях добавлния или изменения и прописывать. ))
     
    al430 нравится это.
  4. al430

    al430 Постоялец

    Регистр.:
    31 окт 2010
    Сообщения:
    94
    Симпатии:
    9
    Как именно ?
    $f_Nomer = ".listQwery (...)."
     
  5. NewS

    NewS

    Регистр.:
    15 авг 2008
    Сообщения:
    255
    Симпатии:
    84
    Вот так:
    PHP:
    $db->query("UPDATE `table` SET `Nomer` = '".$Message_ID."' WHERE `...`=... ");
    Вместо table - имя таблицы, вместо ... - условие
    :)
    PS: Поле Nomer, я так понял, что числовое. Как ты туда собираешься 2 числа засунуть? Или тебе нужно либо Message_ID, либо Sub_Class_ID?
     
    al430 нравится это.
  6. al430

    al430 Постоялец

    Регистр.:
    31 окт 2010
    Сообщения:
    94
    Симпатии:
    9
    Ну , если на прямую, то вот такая форма нумерации меня устраивает, при выводе объекта она генерирует то что нужно "1-010", вот формула
    ".listQuery("select Tip from Message112 where Message_ID=$f_RowID", "\$data[Tip]")."-".($f_Pl<=120 ? 0 : ($f_Pl<=180 ? 1 : 2 ) )."$f_RowID
     
  7. NewS

    NewS

    Регистр.:
    15 авг 2008
    Сообщения:
    255
    Симпатии:
    84
    Ну так запиши значение нужное тебе (1-010) в переменную. И её подставь вместо $Message_ID.

    условия добавления/изменения:
    PHP:
    $New listQuery("select Tip from   Message112 where  Message_ID=$f_RowID""\$data[Tip]")."-".($f_Pl<=120 : ($f_Pl<=180 ) )."$f_RowID;
    $db->query("UPDATE `tableSET `Nomer` = '".$New."' WHERE `...`=... "); 
    Ну вот как-то так...
     
    al430 нравится это.
  8. al430

    al430 Постоялец

    Регистр.:
    31 окт 2010
    Сообщения:
    94
    Симпатии:
    9
    Вот такая проблемка:
    есть в таблице вот такое поле LastUpdated в нем дата и время вот такого вида - 2011-07-26 12:23:13 - как вытащить оттуда только дату?
    P.S. Нужно для sitemap
     
  9. NewS

    NewS

    Регистр.:
    15 авг 2008
    Сообщения:
    255
    Симпатии:
    84
    Пользуйся :)
     
  10. al430

    al430 Постоялец

    Регистр.:
    31 окт 2010
    Сообщения:
    94
    Симпатии:
    9
    Я создал пустой компонент и сделал такой запрос из таблицы поиска по сайту :
    ".listQuery("SELECT URL, LastUpdated FROM Message60 WHERE Checked=1", "
    <url>
    <loc>\$data</loc> <lastmod>\$data[Last... <priority>0.9</priority> </url>")."