1. Лучший говнокод

    В номинации:
    За время:
  2. JavaScript / Говнокод #15986

    +154

    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
    Ext.define('Block', {
        config: {
            title: 'default',
            desc: 'default'
        },
        constructor: function (config) {
            this.initConfig(config);
        },
        tpl: new Ext.Template( '<div class="block">\
                                <div class="close">×</div>\
                                <div class="wrapper">\
                                <h3 class="title">{0}</h3>\
                                <p class="desc">{1}</p>\
                                </div>\
                                </div>'),
        create: function(){
            var div = new Ext.dom.Element(document.createElement('div')),
                html = this.tpl.apply([
                    this.title,
                    this.desc
                ]);
            div.setHTML(html);
            return div.first();
        }
    });
    
    var form = Ext.get('form'),
        blocks = Ext.get('blocks');
    
    form.addListener('submit', function(e, me){
        e.preventDefault();
    
        var title = me.elements.title.value,
            desc = me.elements.desc.value,
            blockInstance = Ext.create('Block');
    
        blockInstance.setTitle(title);
        blockInstance.setDesc(desc);
    
        var blockElement = blockInstance.create();
        blocks.appendChild(blockElement);
        blockElement.select('.close').addListener('click', function(){
            blockElement.remove();
        });
        me.reset();
    });

    Реализация минимального todo app на ExtJS. Переписывалась с чистого js ради эксперимента.

    DrDre, 15 Мая 2014

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

    +154

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    function c(){
      //Внимание! Далее идёт индусский код! Слабонервных попрошу уда(л|в)иться...
      require ('config.php');
     $included = get_included_files();
      if(!in_array('config.php',$included)){
       Error(404);
       return;
      }
     ...
     ...
    }

    Стиль и коммент оставил оригинальные, видимо ЭТО кому-то из наших уже попадало до меня.
    Далее код - в натуре полный "хадж".

    virtual_cia, 15 Мая 2014

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

    +154

    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
    <?php function view_admin_article_categories_show_category(Model_Article_Category $category, $marker) { ?>
        <tr>
            <td><?=$category->id?></td>
            <td><a href="<?=Route::url('admin_articles_category_edit', array('id' => $category->id))?>"><?=$marker?><?=$category->title?></a></td>
            <td><?=$category->alias?></td>
            <td><?=$category->seo_title?></td>
            <td>
                <a href="<?=Route::url('admin_articles_category_edit', array('id' => $category->id))?>"><span class="icon-edit"></span></a>
                &nbsp;
                <a href="<?=Route::url('admin_article_remove', array('id' => $category->id))?>"><span class="icon-remove"></span></a>
            </td>
        </tr>
    <?php } ?>
    <?php
        function view_admin_article_categories_show_child_categories(array $categories, array $current = null, $marker = '')
        {
            if($current === null)
            {
                $parents = queryToArray::from($categories)
                        ->where(function($value){
                            return !is_numeric($value->parent_id);
                        })
                        ->result();
                view_admin_article_categories_show_child_categories($categories, $parents, '');        
            } else {
                foreach($current as $parent)
                {
                    view_admin_article_categories_show_category($parent, $marker);
                    $childs = queryToArray::from($categories)
                        ->where(function($value)use($parent){
                            return $value->parent_id === $parent->id;
                        })
                        ->result();
                    if($childs) {
                        view_admin_article_categories_show_child_categories($categories, $childs, $marker.'&minus; ');
                    }
                }
            }
        }?>

    Проект на Kohana. Где-то во вьюхе.

    Strannik1941, 11 Мая 2014

    Комментарии (11)
  5. JavaScript / Говнокод #15929

    +154

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    var image_src = '';
        try {
            image_src = window.location.origin.toString() + document.images[0].attributes.src.value.toString();
        } catch (e) {
            
        }
        document.write('<meta property="og:image" content="' + image_src + '" />');
        document.write('<div class="yashare-auto-init" data-yashareL10n="ru" data-yashareQuickServices="yaru,vkontakte,facebook,twitter,odnoklassniki,moimir" data-yashareTheme="counter" data-yashareImage="' + image_src + '" ></div> ');

    хуита, 06 Мая 2014

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

    +154

    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
    ....
    
     static public $ruFullMontsArr = array(
            '01' => 'января',
            '02' => 'февраля',
            '03' => 'марта',
            '04' => 'апреля',
            '05' => 'мая',
            '06' => 'июня',
            '07' => 'июля',
            '08' => 'августа',
            '09' => 'сентября',
            '10' => 'октября',
            '11' => 'ноября',
            '12' => 'декабря'
        );
        static public $ruShortMontsArr = array(
            '01' => 'Янв',
            '02' => 'Фев',
            '03' => 'Мар',
            '04' => 'Апр',
            '05' => 'Май',
            '06' => 'Июн',
            '07' => 'Июл',
            '08' => 'Авг',
            '09' => 'Сен',
            '10' => 'Окт',
            '11' => 'Ноя',
            '12' => 'Дек'
        );
    
    ....
    
     $add_ins = '<ins>' . date( 'd', $model->date ) . ' ' . self::$ruFullMontsArr[date( 'm', $model->date )] . '</ins>';

    наверное уже не впервые подобное ... Получение название месяца ...

    BroadcastAddress, 05 Мая 2014

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

    +154

    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
    foreach ($arResult['SECTIONS'] as $key => $arSection)
    		{
    			$arMap[$arSection['ID']] = $key; /*Собираем все ID секций, при этом в качестве ключа пишем ID, а в качестве значения - индекс цикла (?!)*/
    		}
    		$rsSections = CIBlockSection::GetList(array(), array('ID' => array_keys($arMap)), false, $arSelect); 
                    /*вызываем API - выборку из базы, при этом фильтруем по ID-шникам, вынимая их значения через array_keys() (??!!!) при том, что мы сами записывали ID шники в ключи а не в значения*/
    		while ($arSection = $rsSections->GetNext())
    		{
    			if (!isset($arMap[$arSection['ID']]))
    				continue; /*Проверяем еще раз что этот ID-ключ есть в массиве ??? мы его оттуда взяли*/
    			$key = $arMap[$arSection['ID']]; /*Нахера ??? (см. строчку 03)*/
    			if ($boolPicture)
    			{
    				$arSection['PICTURE'] = intval($arSection['PICTURE']);
    				$arSection['PICTURE'] = (0 < $arSection['PICTURE'] ? CFile::GetFileArray($arSection['PICTURE']) : false);
    				$arResult['SECTIONS'][$key]['PICTURE'] = $arSection['PICTURE'];
    				$arResult['SECTIONS'][$key]['~PICTURE'] = $arSection['~PICTURE'];
    			}
    			if ($boolDescr)
    			{
    				$arResult['SECTIONS'][$key]['DESCRIPTION'] = $arSection['DESCRIPTION'];
    				$arResult['SECTIONS'][$key]['~DESCRIPTION'] = $arSection['~DESCRIPTION'];
    				$arResult['SECTIONS'][$key]['DESCRIPTION_TYPE'] = $arSection['DESCRIPTION_TYPE'];
    				$arResult['SECTIONS'][$key]['~DESCRIPTION_TYPE'] = $arSection['~DESCRIPTION_TYPE'];
    			}
    		}

    Битриксоидам за строчки платят? Дефолтный шаблон компонента Битрикса, который вшит ядро.

    braun3812, 30 Апреля 2014

    Комментарии (29)
  8. JavaScript / Говнокод #15873

    +154

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    var ajax = new Ajax.Request(this.ADDRESS,
        {
            method:'post',
            parameters:{'secdata':secdata},
            onComplete: function ( data ){ 
                //console.log( data.responseText )
                setTimeout( function(){ currentObj.callbackCompleteCommit( currentObj.connection.unpuck( data.responseText) )}, 0 ); //out of XHR handler
            },
            onFailure: function(){hideWaiter(); errorResponse(null,'<b>ERROR:</b>connect') },
            asynchronous: true
        });

    Prototype 1.7.1
    Это чувство, когда мешают try catch во внешнем обработчике.
    Кстати, я видел фреймворк развивается: в git, и хелпе он уже 1.7.2 )

    Dart_Sergius, 30 Апреля 2014

    Комментарии (35)
  9. Си / Говнокод #15872

    +154

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    if(sel.ToInt()==1){
      Form1->NumberOfIndexes = 1;
    }else if(sel.ToInt()==2){
      ...
      //еще 11 таких же кучек
      ...
    }else if(sel.ToInt()==13){
      Form1->NumberOfIndexes = 13;
    }else{
      Form1->NumberOfIndexes = 1;
    }

    dm-ua, 30 Апреля 2014

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

    +154

    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
    trait TPerson {
        public $fname;
        public $lname;
        public $mname;
    
        // ...
    }
    
    class BUser extends EMongoDocument {
        public $first_name;
        public $last_name;
        public $middle_name;
    
        // ...
    }
    
    class User extends BUser {
        public $firstname;
        public $lastname;
    
        // ...
    
    }

    Попалось такое наследие на одном рабочем месте. Было два типа юзеров, каждый из них наследовал BUser, в одном из них были firstname и lastname, в другом не были. В монге документы юзера, у которого свои firstname и lastname были вида:
    {
    _id: ObjectId("..."),
    ...
    first_name: '',
    last_name: '',
    middle_name: '',
    fname: '',
    lname: '',
    mname: '',
    firstname: '',
    lastname: ''
    }

    LubarVV, 26 Апреля 2014

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

    +154

    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
    $massiv = array(1,2,3,4,5,6,7,8);
    $her = 0;
    $idRazdelov = array();
    $idRoditela = $idrazdelf;
    foreach($massiv as $chislo){
     
    $db_list = CIBlockSection::GetList(Array(SORT=>"ASC"), $arFilter = Array("IBLOCK_ID"=>"7", "ID"=>$idRoditela), true); 
    while($ar_result = $db_list->GetNext()){
        
        if ($her == 0){
        if ($ar_result["IBLOCK_SECTION_ID"]){
           $idRazdelov[].= $ar_result["ID"];
           $idRoditela = $ar_result["IBLOCK_SECTION_ID"]; 
        }else{
            $idRazdelov[].= $ar_result["ID"];
            $her = 1;
        }
        }
        
        }
    }

    Cotard, 25 Апреля 2014

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