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

    +141

    1. 1
    2. 2
    3. 3
    //index.php
    
    die('+php works');

    вся суть PHP в одной строчке

    problem, 29 Июля 2013

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

    +146

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    $rsResult = CIBlockSection::GetList(array("SORT" => "ASC"), array("IBLOCK_ID" => $arResult['IBLOCK_ID']), false, array("UF_TEMPLATE_TYPE"));
    while ($ar = $rsResult->GetNext()) {
        if ($ar["UF_TEMPLATE_TYPE"]) {
            var_dump($ar["UF_TEMPLATE_TYPE"]);
        }
    }

    maeln0r, 26 Июля 2013

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

    +155

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if( $yandexXML==false ){
       //...
    }
    elseif( $yandexXML==true ){
       //...
    }

    не ну а вдруг как бы че

    CRRaD, 25 Июля 2013

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

    +149

    1. 1
    if('null'==$this->user_data['e_mail']) $this->user_data['e_mail']=null;

    clgs, 18 Июля 2013

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

    +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
    Class FactoryAchievesController {
        
        public static function factory($type)
        {   
            try {
                if ($type) {
                    $classname = ucfirst(strtolower($type)).'AchievesController';
                    if (require_once 'class.achieves.'.$type . '.php') {
                        return new $classname;
                    } else {
                        throw new Exception('Class '.$classname.' not found');
                    }
                } else {
                    throw new Exception('Achieves type not defined');
                }
            } catch (Exception $exc) {
                // LOG
                //echo $exc->getTraceAsString();
            }
        }
    }

    Свой классный автолоад с фаталами

    dimkich, 18 Июля 2013

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

    +148

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    $type = isset($config['type']) ? $config['type'] : 'default';
    switch($type) {
        default:
            $blockClass = 'adminhtml/widget_grid_massaction_item_additional_default';
            break;
    }

    Magento core

    crook, 18 Июля 2013

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

    +149

    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
    if (!class_exists($module, false))
    {
    // Get content from php file
    $filepath = _PS_MODULE_DIR_.$module.'/'.$module.'.php';
    $file = trim(file_get_contents(_PS_MODULE_DIR_.$module.'/'.$module.'.php'));
    if (substr($file, 0, 5) == '<?php')
    	$file = substr($file, 5);
    if (substr($file, -2) == '?>')
    	$file = substr($file, 0, -2);
    
    // If (false) is a trick to not load the class with "eval".
    // This way require_once will works correctly
    if (eval('if (false){	'.$file.' }') !== false)
    	require_once( _PS_MODULE_DIR_.$module.'/'.$module.'.php' );
    else
    	$errors[] = sprintf(Tools::displayError('%1$s (parse error in %2$s)'), $module, substr($filepath, strlen(_PS_ROOT_DIR_)));
    }

    Это оригинал кода из знаменитого Prestashop ...
    Попросили написать модуль. Долго мучался, почему валидный код не работает. Потом нашел.
    Смысл логики в строках 13-17 : мы не хотим принимать файлы модулей с eval функцией.
    Поэтому мы сначала проверяем, есть ли eval в файле.
    Как проверяем?
    А давайте его просто выполним!
    Если выполнится - тогда - require_once
    В общем я О....ЕЛ! Других слов просто нет.
    Мало того, так еще нужно следить, чтобы ваш файл модуля был валидным для eval функции.
    Иначе - Parse error: syntax error ...

    corner578, 17 Июля 2013

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

    +152

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if ($subletter) {
    	$firms = $db->getArray("SELECT `id_firm`, `id_service`, `id_city`, `name` FROM `firm` WHERE `id_city` IN (".implode(",", array_keys($cities)).") AND `name` REGEXP '^".mysql_real_escape_string($letter.$subletter)."' AND `blocked` = 0 ORDER BY name ASC");
    } 
    elseif ($letter) {
    	$firms = $db->getArray("SELECT `id_firm`, `id_service`, `id_city`, `name` FROM `firm` WHERE `id_city` IN (".implode(",", array_keys($cities)).") AND `name` REGEXP '^".mysql_real_escape_string($letter)."' AND `blocked` = 0 ORDER BY name ASC");
    }
    else $firms = array();

    gorky, 16 Июля 2013

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

    +106

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    $items = array('palto','noski','shapki');
        $colors = array('red','black','white');
        $materials = array('kozha','meh','aluminij');
    
        foreach($items as $item) {
          foreach($colors as $color) {
            foreach($materials as $material) {
              echo $item.'-'.$color.'-'.$material;
              echo '</br>';
            }
          }
        }

    Задача:
    Группа 1.
    Пальто, Шапки, Носки
    Группа 2.
    Красный, Синий, Зеленый
    Группа 3.
    Мех, Кожа

    Необходимы комбинации следующего вида, пример:
    1) Пальто - красный - мех
    2) Пальто - красный - кожа
    3) Пальто - синий - мех
    ....
    N) Носки - зеленый - кожа

    При том условии, что группа занимает только свое место в порядке. Т.е. пальто не может быть 2-ым или 3-им словом в комбинации.

    Vasiliy, 15 Июля 2013

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

    +157

    1. 1
    2. 2
    3. 3
    if (is_array(reset((array)$patentInfo))) {
    // ...
    }

    quall, 12 Июля 2013

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