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

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

    +61

    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
    function chckdate( $date )
    {
    	if ( !strrchr( $date, '.' ) )
    		$date = splt( $date, "." );
    	$tmp = explode( ".", $date );
    	if ( (count( $tmp ) != 3) || (!checkdate( $tmp[1], $tmp[0], $tmp[2] )) )
    	{
    		return 0;
    	}
    	return $date;
    }
    
    function plus( $date, $days )
    {
    	$tmp = explode( "-", $date );
    	$date = mktime( 0, 0, 0, $tmp[1], $tmp[2], $tmp[0] );
    	$date = strtotime( "+" . $days . " day", $date );
    	return date( "Y-m-d", $date );
    }
    
    function conv( $date, $sep )
    {
    	$tmp = explode( $sep, $date );
    	return $tmp[2] . "-" . $tmp[1] . "-" . $tmp[0];
    }
    
    function splt( $date, $sep )
    {
    	$tmp = array( substr( $date, 0, 2 ), substr( $date, 2, 2 ), substr( $date, 4, 4 ) );
    	$date = implode( $sep, $tmp );
    	return $date;
    }

    Решил сразу их выложить

    psycho-coder, 23 Июля 2012

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

    +61

    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
    //TODO: Ахтунг! про in_array не слышали?
    $_GET['source'] = isset($_GET['source'])
          && ($_GET['filter_source'] == "manager"
             || $_GET['filter_source'] == "admin"
             || $_GET['filter_source'] == "internet"
             || $_GET['filter_source'] == "president"
             || $_GET['filter_source'] == "builder"
             || $_GET['filter_source'] == "call-center"
             || $_GET['filter_source'] == "calls"
             || $_GET['filter_source'] == "president"
             || $_GET['filter_source'] == "petr"
             || $_GET['filter_source'] == "slava"
             || $_GET['filter_source'] == "vell"
             || $_GET['filter_source'] == "box") ? $_GET['source'] : '0';

    wds, 20 Июля 2012

    Комментарии (5)
  4. SQL / Говнокод #11416

    −134

    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
    SELECT     ISNULL(SUM(dbo.colors.setup_time_base + dbo.colors.setup_time_add), 0) AS setup_time, ISNULL(SUM(dbo.colors.setup_time_base), 0) AS setup_time_base, 
                          ISNULL(SUM(dbo.colors.setup_time_add), 0) AS setup_time_add, ISNULL(SUM(dbo.colors.setup_length_base), 0) + 40 AS setup_lenght_base, 
                          ISNULL(SUM(dbo.colors.setup_lenght_add), 0) AS setup_lenght_add, ISNULL(SUM(dbo.colors.setup_length_base + dbo.colors.setup_lenght_add), 0) 
                          + 40 AS setup_lenght, ISNULL(COUNT(dbo.dir_order_sections.color_id), 0) AS section_count, CASE WHEN COUNT(dbo.dir_order_sections.color_id) 
                          = 0 THEN 0.5 WHEN COUNT(dbo.dir_order_sections.color_id) >= 1 AND COUNT(dbo.dir_order_sections.color_id) 
                          <= 2 THEN 0.65 WHEN COUNT(dbo.dir_order_sections.color_id) >= 3 AND COUNT(dbo.dir_order_sections.color_id) 
                          <= 6 THEN 1 WHEN COUNT(dbo.dir_order_sections.color_id) >= 7 AND COUNT(dbo.dir_order_sections.color_id) 
                          <= 10 THEN 1.15 WHEN COUNT(dbo.dir_order_sections.color_id) >= 11 THEN 1.3 ELSE 0 END AS section_rate, CASE WHEN COUNT(dbo.dir_order_sections.color_id) 
                          = 0 THEN 0.03 WHEN COUNT(dbo.dir_order_sections.color_id) >= 1 AND COUNT(dbo.dir_order_sections.color_id) 
                          <= 2 THEN 0.04 WHEN COUNT(dbo.dir_order_sections.color_id) >= 3 AND COUNT(dbo.dir_order_sections.color_id) 
                          <= 7 THEN 0.05 WHEN COUNT(dbo.dir_order_sections.color_id) >= 8 AND COUNT(dbo.dir_order_sections.color_id) 
                          <= 10 THEN 0.07 WHEN COUNT(dbo.dir_order_sections.color_id) >= 11 THEN 0.07 ELSE 0 END AS role_rate, CASE WHEN COUNT(dbo.dir_order_sections.color_id) 
                          = 0 THEN 0.03 WHEN COUNT(dbo.dir_order_sections.color_id) >= 1 AND COUNT(dbo.dir_order_sections.color_id) 
                          <= 2 THEN 0.04 WHEN COUNT(dbo.dir_order_sections.color_id) >= 3 AND COUNT(dbo.dir_order_sections.color_id) 
                          <= 7 THEN 0.05 WHEN COUNT(dbo.dir_order_sections.color_id) >= 8 AND COUNT(dbo.dir_order_sections.color_id) 
                          <= 10 THEN 0.07 WHEN COUNT(dbo.dir_order_sections.color_id) >= 11 THEN 0.07 ELSE 0 END AS role_shift_rate_base, ISNULL(SUM(dbo.colors.role_shift_rate_add), 
                          0) + CASE WHEN COUNT(dbo.dir_order_sections.color_id) = 0 THEN 0.03 WHEN COUNT(dbo.dir_order_sections.color_id) >= 1 AND 
                          COUNT(dbo.dir_order_sections.color_id) <= 2 THEN 0.04 WHEN COUNT(dbo.dir_order_sections.color_id) >= 3 AND COUNT(dbo.dir_order_sections.color_id) 
                          <= 7 THEN 0.05 WHEN COUNT(dbo.dir_order_sections.color_id) >= 8 AND COUNT(dbo.dir_order_sections.color_id) 
                          <= 9 THEN 0.06 WHEN COUNT(dbo.dir_order_sections.color_id) >= 10 THEN 0.07 ELSE 0 END AS role_shift_rate, dbo.orders.order_n
    FROM         dbo.orders LEFT OUTER JOIN
                          dbo.dir_order_sections ON dbo.dir_order_sections.order_n = dbo.orders.order_n AND dbo.dir_order_sections.color_id <> 0 AND 
                          dbo.dir_order_sections.color_id IS NOT NULL LEFT OUTER JOIN
                          dbo.colors ON dbo.dir_order_sections.color_id = dbo.colors.color_id
    GROUP BY dbo.orders.order_n

    someone, 15 Июля 2012

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

    +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
    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
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    //из Model_Menu:
    public $hierarchy = array(Model_Menu::AUTHOR, Model_Menu::YEAR, Model_Menu::GENRE);
    
    public function get()
        {
            try {
                return
                    DB::query(Database::SELECT,
                        'SELECT alias AS '.Model_Menu::ALIAS.',head AS '.Model_Menu::HEAD.',SUBSTRING(body,1,
                        128) AS '.Model_Menu::LINE.',
                        '.Model_Menu::AUTHOR.',
                        YEAR(date) AS '.Model_Menu::YEAR.',genre AS '.Model_Menu::GENRE.' FROM creations ORDER BY ' .
                            implode(',', $this->hierarchy) . ','.Model_Menu::ALIAS)->execute()->as_array();
            } catch (Exception $e) {
                return false;
            }
        }
    
    // views/menu.php:
    <?php
        $menu = Model::factory('menu');
        $hierarchy = $menu->hierarchy;
        $size = sizeof($hierarchy);
        $currentrow = $menu->creation();
        $xml = new MarkupBuilder();
        $last = array();
        $anchor = -1;
        $current = -1;
        $num = 0;
        $xml->tag('ul');
        $rows = $menu->get();
        foreach ($rows as $row) {
            $num++;
            $active=($row[Model_Menu::ALIAS] == $currentrow);
            while (true) {
                if ($current == $anchor) {
                    $pass = true;
                    for ($i = 0; $i < $size; $i++) {
                        if (empty($last[$i]) || $last[$i] != $row[$hierarchy[$i]]) {
                            $last[$i] = $row[$hierarchy[$i]];
                            $anchor = $i;
                            $pass = false;
                            for ($i = $anchor + 1; $i < sizeof($last); $i++) {
                                unset($last[$i]);
                            }
                            $anchor--;
                            break;
                        }
                    }
                    if ($pass) {
                        $anchor = $size;
                    }
                }
                if ($current < $anchor) {
                    $current++;
                    if ($current < $size) {
                        $xml->tag('li');
                        $xml->tag('span');
                        $xml->text($row[$hierarchy[$current]]);
                        $xml->end();
                        $xml->tag('ul',$active?array('class'=>'active'):array());
                    }
                } elseif ($current > $anchor) {
                    if ($current < $size) {
                        $xml->end();
                        $xml->end();
                    }
                    $current--;
                }
                elseif ($current == $anchor) {
                    if ($current == $size) {
                        $tooltip = $menu->tooltip($row);
                        $xml->tag('li', array(
                            'class' => 'item' . ($active ? 'highlight' : ''),
                            'title' => $tooltip
                        ));
                        $xml->tag('a', array(
                            'href' => (URL::base() . Route::get('creation')->uri(array('creation' => $row[Model_Menu::ALIAS])
                            )),
                            'class' => ($active ? 'highlight' : '')
                        ));
                        $xml->text($row[Model_Menu::HEAD]);
                        $xml->end();
                        $xml->end();
                        break;
                    }
                }
            }
        }
        $xml->end();
        while ($current > -1) {
            $xml->end();
            $current--;
        }
        echo $xml->asXML();
        ?>

    смысл данного ужаса в том, чтобы выбрать из таблицы данные (все в строковом формате) и вывести как меню UL\LI с иерархией, указанной в $hierarchy.

    Lure Of Chaos, 01 Июля 2012

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

    +58

    1. 1
    2. 2
    3. 3
    $attr_id = json_decode($_GET['attr_id']);
    $obj_id = json_decode($_GET['obj_id']);
    $a_href = $_GET['file_id'];

    Разгребаю что осталось от недавно уволенного джуниора.
    2 json_decoda толкают в уныние. При том что джсон туда вообще не приходит =\

    Жаль вот уже, не сохранился код, в к-м он пришедший на _клиент в браузер_ json парсил руками(JSON.parse() - для слабых)

    vitaly, 29 Июня 2012

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

    +61

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    if (is_page('orders_item')) {
    	die ("<meta http-equiv='refresh' content='0; url=".$base_url."/orders_item.php?pid=".$_GET['pid']."'>");
    } elseif (is_page('orders_garant')) {
    	die ("<meta http-equiv='refresh' content='0; url=".$base_url."/orders_garant.php?pid=".$_GET['pid']."'>");
    } else {
    	die ("<meta http-equiv='refresh' content='0; url=".$base_url."/orders_item.php?pid=".$_GET['pid']."'>");
    }
    exit();

    Хоть опросник пиши:
    - чем первый die() отличается от последнего?
    - почему их 3?
    - кто будет экранировать $_GET?
    - зачем в конце exit() подпирает die()?

    domaster, 25 Июня 2012

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

    +159

    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
    function group_sorting_ABC(array, mode)
    {
        var arr = [],
            resArray = [],
            add;
        for (var i = 0; i < array.length; i++)
        {
            var key;
            if (array[i].index && mode == 'index')
            {
                switch (array[i].index.toString().length)
                {
                case 1:
                    add = '00';
                    break;
                case 2:
                    add = '0';
                    break;
                case 3:
                    add = '';
                    break;
                }
                key = add + array[i].index;
            }
            else
            {
                key = array[i].name;
            }
            arr.push(key + '@' + i);
        }
        arr = arr.sort();
        for (var i = 0; i < arr.length; i++)
        {
            var a = arr[i].split('@');
            var item = array[a[1]];
            resArray.push(item);
        }
        return resArray;
    }

    Наковырял в middleware set top box-а MAG-250.

    vovams, 23 Июня 2012

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

    +56

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if ('cardiscon' == $key) {
    	echo '<td class="even cardiscon">'.$row['name'].':</td>';
    } elseif ('cardprice' == $key) {
    	echo '<td class="even cardiscon">'.$row['name'].':</td>';
    } else {
    	echo '<td class="even">'.$row['name'].':</td>';
    }

    Странная конструкция

    domaster, 21 Июня 2012

    Комментарии (5)
  10. Си / Говнокод #10613

    +135

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    // заполнить кадр на пересылку
    for (i = 1; i<frame[0]; i++) 
    {	sciOutFrame[i] = frame[i];}
    
    // Установим длину кадра ( в первый байт кадра )
    sciOutFrame[0] = i;

    boolivar, 07 Июня 2012

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

    +75

    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
    try {
        try{
            BasicFormatKeywordsReader keyRep = new BasicFormatKeywordsReader(new ExcelBook(fileName),keywordName,sheetName);
            keyRep.readKeywords(keyword);
        } catch (Throwable ex){
            throw new TestCaseException("Can't initialize flow",ex);
        }
        for(Executable executable:keyword.getChildren()) {
            executable.execute(getRequest());
        }
    } catch (TestCaseException ex) {
        throw ex;
    } catch (Throwable ex){
        throw new TestCaseException(ex);
    }

    Талантливо!

    nafania217518, 05 Июня 2012

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