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

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

    +58

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    // Дополняем недостающие данные товаров
    foreach($product_data as $p_key => $p_dat) {
      		if(!isset($p_dat['product_id'])) {
      			unset($product_data[$p_key]);
      			$this->remove($p_dat['def_key']);
      			continue;
      		}
    }

    Фееричный комментарий!

    zima, 23 Августа 2012

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

    +58

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    if (!$output) {
            $output = 'R0lGODlhMAAQAPUuALV7Z6p9ZkUiDkEhDIpMPSgcC2pAMFI9ibSEbZxpTP///7uJciodDTMkEYNVO7eCcpZfQJBeQ5xjRkIdCsaWgL2OdL';
            $output .= '6IbL2OcqJqRyweDj8qFXpOMy8fDyQYCC8gDUIqEiYaCraJbL2Lco9ePoBTNG1DKpxyXK2AbbN7Yqx2WjQlEoFTOW9FLCseDQAAAAAAAAA';
            $output .= 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C1hNUCBEYXRhWE1QRD94cDIzRThDRkQwQzcyIiB4';
            $output .= 'bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkU2RTVBQzAwMDFwYWNrZXQgZW5kPSJyIj8+ACH5BAUAAC4ALAAAAAAwABAAQAZkQJdwSCwaj';
            $output .= '8ik0uVpcQodUIuxrFqv2OwRoTgAFgdFQEsum8/ocit0oYgqKVVaG4EMCATBaDXv+/+AgYKDVS2GDR8aGQWESAEIAScmCwkJjUcSKA8GBh';
            $output .= 'YYJJdGLCUDEwICDhuEQQA7';
            $output = base64_decode($output);
    }

    Хранение картинки прямо в PHP коде.

    DropWorld, 09 Августа 2012

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

    +58

    1. 1
    2. 2
    3. 3
    if( $vv || $vv === '0' ){
        $param = htmlspecialchars( $vv, ENT_QUOTES );
    }

    htmlspecialchars, видимо, творит с нулями что-то особенное

    somnambulism, 06 Августа 2012

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

    +58

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    </tr>
    	<?php
    	}
    	echo "</table>";
    	?>
    </td>

    T_T

    psycho-coder, 23 Июля 2012

    Комментарии (3)
  6. 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)
  7. 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)
  8. PHP / Говнокод #11331

    +58

    1. 1
    2. 2
    $cats = get_categories(array("child_of" => get_category_by_slug($wp_query->query_vars["category_name"])->category_parent ? get_category_by_slug($wp_query->query_vars["category_name"])->category_parent : get_category_by_slug($wp_query->query_vars["category_name"])->cat_ID,
    						 "hide_empty" => false));

    Я старался.
    Всегда ваш,

    varg242, 01 Июля 2012

    Комментарии (13)
  9. 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)
  10. PHP / Говнокод #10357

    +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
    <?php if ( $poll ) : ?>
    	<h2>Опрос: <?php echo $poll->getTitle(); ?></h2>
    	
    	<?php $count = $poll->votes->count(); ?>
    	
    	<div>Всего ответивших: <?php echo $count; ?></div>
    	
    	<?php if ( $sf_user->isAuthenticated() ) : ?>
    		
    		<?php if ( !$poll->isVote( $sf_user->getGuardUser()->getId() ) ) : ?>
    			
    			<?php foreach ( $poll->answers as $answer ) : ?>
    				<div><?php echo link_to( $answer->getTitle(), 'poll_vote', array( 'poll' => $poll->getId(), 'answer' => $answer->getId() ) ); ?></div>
    			<?php endforeach; ?>
    			
    		<?php else : ?>
    			
    			<?php foreach ( $poll->answers as $answer ) : ?>
    				<div><?php echo $answer->getTitle(); ?> ($count / <?php echo $answer->getPercent( $count ); ?>%)</div>
    			<?php endforeach; ?>
    			
    		<?php endif; ?>
    		
    	<?php else : ?>
    		
    		<?php foreach ( $poll->answers as $answer ) : ?>
    			<div><?php echo $answer->getTitle(); ?></div>
    		<?php endforeach; ?>
    		
    		<div>Что бы выбрать вариант ответа, необходимо войти.</div>
    		
    	<?php endif; ?>
    	
    <?php endif; ?>

    Пал выбор, делать проверку, голосовал пользователь или нет в цикле и выводить соответствующую инфу или сделать проверку и использовать два разных цикла в разных ветках

    psycho-coder, 24 Мая 2012

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

    +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
    if ($who == 'student') $answerArray['student_id'] = $this->people->id;
    if ($who == 'teacher') $answerArray['teacher_id'] = $this->people->id;
    if ($who == 'student') $answerArray['student_text'] = $post_array['message'];
    if ($who == 'teacher') $answerArray['teacher_text'] = $post_array['message'];
    if ($who == 'student') $answerArray['student_date'] = date('Y-m-d H:i:s');
    if ($who == 'teacher') $answerArray['teacher_date'] = date('Y-m-d H:i:s');
    if ($who == 'student' && $files) $answerArray['student_file'] = $files[0]['name'];
    if ($who == 'teacher' && $files) $answerArray['teacher_file'] = $files[0]['name'];
    if ($who == 'student' && $files) $answerArray['student_file_orig_name'] = $files[0]['orig_name'];
    if ($who == 'teacher' && $files) $answerArray['teacher_file_orig_name'] = $files[0]['orig_name'];
    if ($who == 'student') $answerArray['status'] = 0;
    if ($who == 'teacher') $answerArray['status'] = 1;

    Обнаружил в корпоративном коде. )

    MikleSmart, 15 Мая 2012

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