1. PHP / Говнокод #8502

    +162

    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
    $er = array();
    
    $file1=$config['tpl_dir'].$config['general']['site_template'].'/style/catalog.css';
    $file2=$config['tpl_dir'].$config['general']['site_template'].'/module/catalog.html';
    $file3=$config['tpl_dir'].$config['general']['site_template'].'/module/catalog_read.html';
    $file4='modules/catalog/setup_catalog/table_catalog.MYD';
    $file5='modules/catalog/setup_catalog/table_catalog_cats.MYD';
    $file6='modules/catalog/setup_catalog/table_catalog_comments.MYD';
    $file7='modules/catalog/setup_catalog/table_catalog_rating.MYD';
    
    
    if(file_exists($file1)==True) {}else{$er[]="нет файла стилей <b>\"catalog.css\"</b> <br> он должен находиться в<b> $file1</b>"; }
    if(file_exists($file2)==True) {}else{$er[]="нет файла дизайна <b>\"catalog.html\"</b> <br> он должен находиться в<b> $file2</b>"; }
    if(file_exists($file3)==True) {}else{$er[]="нет файла дизайна <b>\"catalog_read.html\"</b> <br> он должен находиться в<b> $file3</b>"; }
    if(file_exists($file4)==True) {}else{$er[]="нет файла таблицы <b>\"table_catalog.MYD\"</b> <br> он должен находиться в<b> $file4</b>"; }
    if(file_exists($file5)==True) {}else{$er[]="нет файла таблицы <b>\"table_catalog_cats.MYD\"</b> <br> он должен находиться в<b> $file5</b>"; }
    if(file_exists($file6)==True) {}else{$er[]="нет файла таблицы <b>\"table_catalog_comments.MYD\"</b> <br> он должен находиться в<b> $file6</b>"; }
    if(file_exists($file7)==True) {}else{$er[]="нет файла таблицы <b>\"table_catalog_rating.MYD\"</b> <br> он должен находиться в<b> $file7</b>"; }

    Установщик модуля. Условия проверки доставляют: бул сравнимаем с булом (и получаем бул), вместо отрицания держим еще одну ветку условия.

    Мартин, 12 Ноября 2011

    Комментарии (5)
  2. PHP / Говнокод #8497

    +164

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    ...
    // description
    if( $group_row['description'] == "" )
    	$this->options["description"]=(int)false; // Можно было просто писать 0
    else {
    	$this->description = $group_row['description'];
    	$this->options["description"]=(int)true; // Можно было просто писать 1))
    }
    ...
    $this->privancy['photos'] = (int)(bool)$group_row['photos'];
    $this->privancy['topics'] = (int)(bool)$group_row['topics'];
    ...

    Вчера ночью вот что написал :) Надо мне работать только днём!)

    m_hamlet, 11 Ноября 2011

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

    +159

    1. 1
    if($_GET['archive'] and $_GET['archive'] != ''){ $archive = $_GET['archive']; } // stupid fix ?

    cutenews

    jQuery, 11 Ноября 2011

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

    +162

    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
    function section($sct,$grp = 'all') {
    		global $g,$a,$d,$lists,$master_list,$currency;
    		$access = ac_section($sct,$this->adminmode);
    		if ($access['r'] == 'no' )  {header("Location: /errors/all/403");}
    		$master = q1("SELECT * FROM `_s` WHERE `_id`='".$sct."' AND `_l`='".GetLanguage()."'");
    		if (isset($_POST['pcounts'])) {
    			$_SESSION['_pcount']=(int)$_POST['pcounts'];
    		} elseif (isset($_GET['pcounts'])) {
    			$_SESSION['_pcount']=(int)$_GET['pcounts'];
    		}
    		if (isset($_SESSION['_pcount'])) $master['_pcount']=$_SESSION['_pcount'];
            $master_struct = $this->Struct_fields(qa("SHOW COLUMNS FROM `_s`"));
    		$grps = qa("SELECT * FROM `_g` WHERE `_s`='".$sct."' AND `_g`='".$grp."' AND `_l`='".GetLanguage()."'".((!empty($a[0]['con']))?(" AND `header` LIKE '%".$a[0]['con']."%'"):('')).((!empty($a[0]['gby']))?(" ORDER BY `".$a[0]['gby']."`".((!empty($a[0]['gdir']))?(' DESC'):(' ASC'))):(" ORDER BY ".$master['_sorting'])).((!empty($a[0]['gfrom']))?(' LIMIT '.$a[0]['gfrom'].','.((!empty($a[0]['gper']))?($a[0]['gper']):((!empty($master['_gcount']))?($master['_gcount']):('10')))):(' LIMIT 0,'.((!empty($a[0]['gper']))?($a[0]['gper']):((!empty($master['_gcount']))?($master['_gcount']):('10'))))));
    		$this->cq++;
    		$grps_nav_count = qa("SELECT count(*) `c` FROM `_g` WHERE `_s`='".$sct."' AND `_g`='".$grp."' AND `_l`='".GetLanguage()."'".((!empty($a[0]['con']))?(" AND `header` LIKE '%".$a[0]['con']."%'"):('')));
    		$grps_len = sizeof($grps);
    		$grps_struct = $this->Struct_fields(qa("SHOW COLUMNS FROM `_g`"));
    		$pgs = qa("SELECT * FROM `_p` WHERE `_s`='".$sct."' AND `_g`='".$grp."' AND `_l`='".GetLanguage()."'".((!empty($a[0]['con']))?(" AND `header` LIKE '%".$a[0]['con']."%'"):('')).((!empty($a[0]['by']))?(" ORDER BY `".$a[0]['by']."`".((!empty($a[0]['dir']))?(' DESC'):(' ASC'))):(" ORDER BY ".$master['_sorting'])).((!empty($a[0]['from']))?(' LIMIT '.$a[0]['from'].','.((!empty($a[0]['per']))?($a[0]['per']):((!empty($master['_pcount']))?($master['_pcount']):('10')))):(' LIMIT 0,'.((!empty($a[0]['per']))?($a[0]['per']):((!empty($master['_pcount']))?($master['_pcount']):('10'))))));
    		$this->cq++;
    		$pgs_nav_count = qa("SELECT count(*) `c` FROM `_p` WHERE `_s`='".$sct."' AND `_g`='".$grp."' AND `_l`='".GetLanguage()."'".((!empty($a[0]['con']))?(" AND `header` LIKE '%".$a[0]['con']."%'"):('')));
    		$this->cq++;
    		$pgs_len = sizeof($pgs);
    		$pgs_struct = $this->Struct_fields(qa("SHOW COLUMNS FROM `_p`"));
    		$list_g = '';
    		$list_p = '';
    // Дальше еще строк 200 подобного кода

    Нашел бэкап сайта, который надо было дорабатывать
    И это только одна функция одного из классов. Всего около 15 классов, в каждом по 30-40 функций.
    При этом есть еще куча файлов вызываемых напрямую(отправка сообщений, добавление/редактирование/удаление данных в админке), хотя и используется mod_rewrite

    долго думал, потом переписал нужные куски заново

    Bagration, 11 Ноября 2011

    Комментарии (28)
  5. PHP / Говнокод #8490

    +160

    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
    <?php
    $lquery = mysql_query("SELECT * FROM language_settings ORDER BY language_id");
    $llquery = mysql_query("SELECT * FROM language_settings ORDER BY language_id");
    ?>
    
    <?php while($ldata = mysql_fetch_array($lquery)){ ?>
    <a><?=$ldata['language_name'];?></a>
    <?php } ?>
    
    <?php while($lldata = mysql_fetch_array($llquery)){  // Language Loop
    $lang_prefix = $lldata['language_prefix'];
    language($lang_prefix);
    $lang = strtolower($lldata['language_prefix']);
    ?>
            ....
    <?php
    $_lid = $lldata['language_id'];
    $_nid = $_REQUEST['nid'];
    if($_nid!=""){
    // newsid=$_nid AND
    $qry = "SELECT *
    	FROM tbl_products as pc JOIN tbl_products_content as pcc ON pc.product_id=pcc.product_id
    	WHERE  pcc.lang_prefix='".strtolower($lldata['language_prefix'])."' AND pc.product_id='{$_nid}' ORDER BY product_order,product_cat_id";
           $cquery = mysql_query($qry);
           $cdata = @mysql_fetch_array($cquery);
    }
               ...
    }?>

    Вот... попалось недавно такое произведение...

    tsybulskyserg, 11 Ноября 2011

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

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    if ($_POST["SAVE"]!="OK")
            $this->IncludeComponentTemplate();
    else
            $_POST=Array()

    оп оп

    atarix12, 10 Ноября 2011

    Комментарии (16)
  7. PHP / Говнокод #8468

    +158

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    public function addOffer($type='vendor.model', $values) {
        switch ($type) {
          case 'vendor.model': $offer = new yml_type_vendor_model(); break;
          }
        // Заполняем значениями
        $offer->setValues($values);
       ......

    jonnywalker, 10 Ноября 2011

    Комментарии (7)
  8. PHP / Говнокод #8467

    +151

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    // $reg_date = "12.12.2007 15:41";
    
    $this->reg_date = strptime($reg_date, "%d.%m.%Y %H:%M");
    
    // и теперь обратно. Казалось бы, все просто, ан нет!
    $rd = $this->reg_date;
    $reg_date = mktime($rd['tm_hour'], $rd['tm_min'], 0, $rd['tm_mon']+1, $rd['tm_mday'], 1900+$rd['tm_year']); //как это???
    $reg_date = strftime("%d.%m.%Y %H:%M", $reg_date);
    // нормально, у strptime и strftime порядок аргументов разный
    
    // $r_date == "12.12.2007 15:41"

    Попытался написать на PHP простенькую штуку, глаза на лоб полезли от того как там делаются элементарнейшие вещи. Скажите, что все можно сделать проще и я просто плохо читал документацию!

    hakimovis, 10 Ноября 2011

    Комментарии (34)
  9. PHP / Говнокод #8461

    +160

    1. 1
    2. 2
    unset($this->session->data['order_id']);
    $this->data['pap4_orderid'] = $this->session->data['order_id'];

    Не разбирался зачем сохраняется order_id, но в любом слусае - где логика?
    opencart, /catalog/controller/checkout/success.php, 13-14 строки

    antongorodezkiy, 09 Ноября 2011

    Комментарии (12)
  10. PHP / Говнокод #8452

    +163

    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
    function implode_get($ar) {
        $first = true;
        $output = '';
        foreach($ar as $key => $value) {
            if ($first) {
                $output = '?'.$key.'='.$value;
                $first = false;
            } else {
                $output .= '&'.$key.'='.$value;
            }
        }
        return $output;
    }
    function explode_get() {
        $ar = array();
        foreach ($_GET as $key => $value) {
            $ar[$key] = $value;
        }
        return $ar;
    }

    после первой функции дурная голова сказала что нужна обратная функция.

    LmSys, 08 Ноября 2011

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