1. Список говнокодов пользователя Cool-Di

    Всего: 3

  2. PHP / Говнокод #11358

    +58

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    $arrNotViewDeathWindow = array(
    			'/reklama/press/index.php' => '1',
    			'/reklama/press/' => '1',
    			'/reklama/product/index.php' => '1',
    			'/reklama/product/' => '1',
    			'/about/poll/' => '1',
    			'/about/poll/index.php' => '1',
    			'/about/poll/result.php' => '1',
    			'/reklama/product/orders_list.php' => '1',
    		);
    
    if(!$arrNotViewDeathWindow[$_SERVER['SCRIPT_NAME']]) ...

    Кусок кода из отображения всплывающего окна на сайте на всех страницах кроме...

    Cool-Di, 04 Июля 2012

    Комментарии (20)
  3. PHP / Говнокод #10201

    +79

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    //первый сайт - интернет магазин
    //отрывок из функции редактирования, функции добавления, функции удаления товаров, в таблицу "export_catalogue" каждая строка - это "поле товара" и "новое значение поля"
    //что-то на подобие лога изменений. Конечно копипаст всех полей товаров.
    $this->insert($table = "`export_catalogue`", $fields = "`action`, `table`, `element`, `fields`, `value`", $values="'update', 'catalogue_files', '$catalogue_id', 'name_rus', '$name_rus'");
    $this->insert($table = "`export_catalogue`", $fields = "`action`, `table`, `element`, `fields`, `value`", $values="'update', 'catalogue_files', '$catalogue_id', 'name_ger', '$name_ger'");
    
    //файл xml_create_catalogue.php, который запускается по крону каждые 5 минут, создаёт xml файлы. Каждый файл содержит в себе изменение одного поля товара
    $result_export_array = $global->select_all($fields = "*", $table = "`export_catalogue`", $where = "`create` = '0' ORDER BY `id` ASC");
    for ($i=0; $i<count($result_export_array); $i++){
      $doc = new DOMDocument('1.0', 'utf-8');
      $doc->formatOutput = true;
      ...
      // название fields - не мой коммент
      $fields = $doc->createElement('fields');
      $fields = $root->appendChild($fields);
      // данные element - не мой коммент
      $data_fields = $doc->createTextNode($result_export_array[$i]['fields']);
      $data_fields = $fields->appendChild($data_fields);
      ...
      //если картинка или файл товара, то файл кодируется в бэйс64 и записывается в ячейку xml
      $value_default = $result_export_array[$i]['value'].'photo_data'.base64_encode($contents);
      $value_convert = mb_convert_encoding($value_default, "UTF-8", "Windows-1251");
      $data_value = $doc->createTextNode($value_convert);
      ...
      //почетка, что файл экспорта создан
      $global->update($table = "`export_catalogue`", $fields = "`create` = '1'", $where = "`id` = '".$result_export_array[$i]['id']."'");
    }
    
    //файл xml_upload_catalogue.php, крон - 5 минут, копирует созданные xml файлы на фтп второго сайта
    $result_export_array = $global->select_all($fields = "*", $table = "`export_catalogue`", $where = "`upload` = '0' ORDER BY `id` ASC");
     for ($i=0; $i<count($result_export_array); $i++){
      ... //тут идёт копирование файлов по фтп
      //пометка, что файл загружен на второй сайт
      $global->update($table = "`export_catalogue`", $fields = "`upload` = '1'", $where = "`id` = '$file_id'"); 
    }
    
    //второй сайт - интернет магазин
    //xml_import_catalogue.php по крону, проверяется наличие xml файлов и поля импортируются в каталог
    //цикл по списку файлов
    foreach ($file_list as $key => $file_name) {
      //в таблицу import_catalogue записывается, какие файлы были импортированны 
      $next_file_array = $global->select_only($fields = "*", $table = "`import_catalogue`", $where = "`id` != '0' ORDER BY `id` DESC LIMIT 1");
      //причем имя файла(числовое) должно быть обязательно на 1 больше последнего записанного в таблице 
      $next_file = intval($next_file_array['id'] + 1).'.xml';
      ...
      //апдейт поля товара
      $value_convert = mb_convert_encoding($value_xml, "Windows-1251", "UTF-8");
      $global->update($table = "`$table_xml`", $fields = "`$fields_xml` = '".$global->sql_prepare($value_convert)."'", $where = "`id` = '$element_xml'");
      ...
      //помечаем, что файл импортирован и удаляем
      $global->insert($table = "`import_catalogue`", $fields = "`joined`", $values="'$joined'");
    }

    Самый идеальный экспорт товаров из одного сайта в другой. Приведены отрывки кода из двух сайтов на каждом этапе экспорта

    Cool-Di, 05 Мая 2012

    Комментарии (6)
  4. PHP / Говнокод #4757

    +148

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    <?
    	$optSelect['10'] = ($_REQUEST['sort_count']=='10') ? 'selected' : '';
    	$optSelect['20'] = ($_REQUEST['sort_count']=='20') ? 'selected' : '';
    	$optSelect['50'] = ($_REQUEST['sort_count']=='50') ? 'selected' : '';
    	$optSelect['all'] = ($_REQUEST['sort_count']=='all') ? 'selected' : '';
    	
    	$remParams = array('sort_count');
            //функция GetCurPageParam в битрикс возвращает путь к текущей странице с добавлением/удалением параметров (автор поста) 
    	$optValueURI['10'] = $APPLICATION->GetCurPageParam('sort_count=10', $remParams);
    	$optValueURI['20'] = $APPLICATION->GetCurPageParam('sort_count=20', $remParams);
    	$optValueURI['50'] = $APPLICATION->GetCurPageParam('sort_count=50', $remParams);
    	$optValueURI['all'] = $APPLICATION->GetCurPageParam('sort_count=all', $remParams);
    			
    	$optValue['10'] = $siteURL . $optValueURI['10'];
    	$optValue['20'] = $siteURL . $optValueURI['20'];
    	$optValue['50'] = $siteURL . $optValueURI['50'];
    	$optValue['all'] = $siteURL . $optValueURI['all'];
    ?>
    <select onChange="location=this.value">
    	<option <?=$optSelect['10']?> value="<?=$optValue['10']?>">10</option>
    	<option <?=$optSelect['20']?> value="<?=$optValue['20']?>">20</option>
    	<option <?=$optSelect['50']?> value="<?=$optValue['50']?>">50</option>
    	<option <?=$optSelect['all']?> value="<?=$optValue['all']?>">Все</option>
    </select>

    Реализация Селекта количества выводимых элементов на странице. Сайт делал топовый партнёр 1c-Bitrix.
    Я думаю, что разумнее было бы сделать так:
    $arPages = array(10, 20, 50, 'all');
    foreach ($arPages as $page) {?>
    <option <?if($page == $_REQUEST['sort_count']){?>selected<?}?>>$page</option>
    <?}?>
    Ну и для сабмита можно какую нибудь нормальную функцию в JS написать.

    Cool-Di, 26 Ноября 2010

    Комментарии (292)