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

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

    +155

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    // Функция подключения файлов шаблонов -----------------------------------------------------------------
        function tpl_include($filepath, $title = '', $content = '') {
    
            global $lang, $lang_array;
            $tpl_body = str_replace("\n", '', file_get_contents($filepath));
            $tpl_body = preg_replace('#\{loop (.*?)\}(.*?)\{\/loop\}#i', "\nEOL;\nforeach (\\1 as \$var=>\$val) echo <<<EOL\n\\2\nEOL;\necho <<<EOL\n", $tpl_body);
            $tpl_body = preg_replace('#\{const (.*?)\}#i', "\nEOL;\necho \\1;\necho <<<EOL\n", $tpl_body);
            $to_eval = "echo <<<EOL\n".$tpl_body."\nEOL;\n";
            eval($to_eval);
    
        }
        // -----------------------------------------------------------------------------------------------------

    По следам http://govnokod.ru/5658.
    Шаблонизатор этот жив и кочует из проекта в проект.
    Можно ссылаться на переменные из массива $lang, где хранится локализация и на $title и $content. Вот так - {$title}.
    Можно ссылаться на любые константы. Например, {const ROOT_PATH}.
    Можно делать цикл {loop $array}{/loop}, где внутри доступны переменные {$var} и {$val}.
    Полностью избавляет от шорт-тегов, которые скоро уже и уберут из похапе.
    Работает лишь чуть медленнее include с шорт-тегами (0.8 против 1.2 на 10к прогонов) и, разумеется, быстрее Смарти.
    При необходимости в каком-то проекте в чем-то еще - можно легко добавить.
    В общем - изящное вонючее решение.

    7ion, 23 Июня 2011

    Комментарии (11)
  3. C++ / Говнокод #7031

    +155

    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
    #include <a_samp>
    
    new objects[MAX_OBJECTS];
    
    public OnFilterScriptInit()
    {
    	objects[0] = CreateObject(980, -2491.1276855469, -129.08126831055, 27.397054672241, 0, 0, 90.675659179688);
    	objects[1] = CreateObject(980,-2459.8862304688,-152.13926696777,27.652730941772,0,356,0);
        objects[2] = CreateObject(980,-2446.0773925781,-82.466796875,35.984577178955,0,356,0);
    	return 1;
    }
    
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    	if (strcmp("/garage", cmdtext, true, 10) == 0)
    	{
    		MoveObject(objects[0], -2491.1276855469, -129.08126831055, 20, 2);
    		SetTimer("VTimer", 10000, 0);
    		return 1;
    	}
    	return 0;
    }
    
    forward VTimer();
    public VTimer()
    {
    	MoveObject(objects[0], -2491.1276855469, -129.08126831055, 27.397054672241, 2);
    	return 1;
    }

    smith, 23 Июня 2011

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

    +155

    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
    $arrParams = array();
                    $arrParams['table'] = array();
                    $arrParams['limit'] = 20;
                    
                    $arrParams['table']['id'] = 'cmt_summary';
                    $arrParams['table']['class'] = 'comments';
                    $arrParams['table']['rows_id'] = 'cmt_{{comment_id}}';
                    
                    $arrParams['table']['columns'] = array();
                    
                    $arrParams['table']['columns']['comment_id'] = array();
                    $arrParams['table']['columns']['comment_id']['name'] = 'Comment ID';
                    $arrParams['table']['columns']['comment_id']['class'] = 'a';
                    $arrParams['table']['columns']['comment_id']['sort'] = true;
                    $arrParams['table']['columns']['comment_id']['search'] = array('type'=>'int');
                    $arrParams['table']['columns']['comment_id']['row'] = $sRowOutput;
                    
                    $arrParams['table']['columns']['user_name'] = array();
                    $arrParams['table']['columns']['user_name']['name'] = 'Poster Username';
                    $arrParams['table']['columns']['user_name']['class'] = 'a';
                    $arrParams['table']['columns']['user_name']['sort'] = true;
                    $arrParams['table']['columns']['user_name']['search'] = array('type'=>'string');
                    $arrParams['table']['columns']['user_name']['row'] = $sRowOutput;
                    
                    $arrParams['table']['columns']['email'] = array();
                    $arrParams['table']['columns']['email']['name'] = 'Poster Email';
                    $arrParams['table']['columns']['email']['class'] = 'a';
                    $arrParams['table']['columns']['email']['sort'] = true;
                    $arrParams['table']['columns']['email']['search'] = array('type'=>'string');
                    $arrParams['table']['columns']['email']['row'] = $sRowOutput;

    Прошло уже почти 3 месяца как я сижу на проекте, а он не перестаёт меня удивлять :)

    Глядя на эти строки думается что-то подобное было в головах у кодеров:
    - Зачем юзать объекты, в массивы всё нормально ложится и они легче.
    - По фиг что массивы не подхватывает ни одна IDE, Notepad++ всё ещё бесплатный, а большего в PHP и не надо.
    - Зачем XML и XSD? Зачем это усложнение? Ну и что Ext4Yii хороший пример того как можно это сделать? Нам не нужны слабые духом программисты! :)

    kovel, 22 Июня 2011

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

    +155

    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
    // Это у них такой конфиг:
    
    //--------------------------------------------------------------------------------------
    // Определение дирректорий сервера
    	$siteDir = '';
     	$DIR = array(
    	'root' => $_SERVER['DOCUMENT_ROOT'].$siteDir,
    	);
    	$DIR['HOST'] = 'http://'.$_SERVER['HTTP_HOST'];
    	$DIR['media'] = $DIR['root'].'/media/';
    	$DIR['theme'] = $DIR['root'].'/themes/';
    	$DIR['lib'] = $DIR['root'].'/lib/';
    	$DIR['script'] = $DIR['root'].'/scripts/script.';
    
    
    // А это у них такая мвц 
    // при error_reporting(E_ALL) - таааакая знатная жопа
    
    //---------------------------------------------------------------//
    /* Организация простейшего MVC							 		 */
    //---------------------------------------------------------------//
    
    	//Загружаем модель для формированния данных
    	if(file_exists($DIR['script'].$Page.'.php'))
    		require_once($DIR['script'].$Page.'.php');	
    				
    	//Загрузка шаблона для отоброжения данных
    		require_once($DIR['theme'].'default.php');

    Ща сижу на собеседование, попросили сделать пару страничек, используя местные порядки.
    Сижу в шоке.

    asdkhkadhfkha22, 22 Июня 2011

    Комментарии (45)
  6. Pascal / Говнокод #7001

    +155

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    uses crt;
    var s:integer;
    begin
    readln(s);
    writeln(ord(s[0]));
    readln;
    end.

    dos, 20 Июня 2011

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

    +155

    1. 1
    2. 2
    3. 3
    $pageController = new PageController();
    $photo = $pageController->getPhoto($pageRecord->id);
    $photo =  $photo ;

    А вдруг ПХП с первого раза не понял что в переменной должно быть фото? Повторение мать учения.

    Kos, 19 Июня 2011

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

    +155

    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
    <script type="text/php">
    
    $color_op = Style::munge_colour( "#565656" );
    
    $font_op = Font_Metrics::get_font("arial", "normal");
    $font_op2 = Font_Metrics::get_font("arial", "bold");
    
    {literal}
    #	$pdf->text($left_op, $top_op, $text00, $font_op, 16, $color_op);
    #	$pdf->text($left_op, $top_op + 20, $text22, $font_op, 16, $color_op);
    #	$pdf->text($left_op, $top_op + 40, $text33, $font_op, 16, $color_op);	
    
    	$pdf->text($left_op, $top_op, $text00, $font_op2, 16, $color_op);
    	$pdf->text($left_op+87, $top_op, $text01, $font_op2, 16, $color_op2);
    	$pdf->text($left_op+87+15, $top_op, $text02, font_op, 16, $color_op);
    	
    {/literal}
    </script>

    Кусок из шаблона Smarty.

    _tL, 09 Июня 2011

    Комментарии (6)
  9. JavaScript / Говнокод #6600

    +155

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    $($("html body")[0]).find("a.toggle").each(function(){
    	$(this).next().html($(this).next().html() + "<img src='1.gif'>");
    	$(this).next().css("display", $(this).next().css("display") == "none" ? "none" : "none");
    	$(this).next().css("paddingTop", "20px");
    }); // CkPbIBaEM MeHIO

    Дело было вечером, делать было нечего. Как только я вернулся домой с попойки, я ради интереса решил почитать электронный учебник по программированию и вспомнить старое. Спросонья я и написал такой говонокод.

    ling, 08 Мая 2011

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

    +155

    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
    class mysql_act extends main { 
        function mysql_count($zap, $m) { 
            $q = mysql_query($zap); 
            if ($m == 'count') { 
                $qc = mysql_num_rows($zap); 
            } else  
            $qc = mysql_fetch_array($q); 
            return $qc; 
        } 
        function mysql_method($method ,$arr, $db, $wh) { 
            $i = 0; 
            foreach ($arr as $k => $v) { 
                $i++; 
                if (count($arr)==$i) 
                $par .= '`'. $k .'`=\''.$v.'\''; 
                else 
                $par .= '`'. $k .'`=\''.$v.'\' &&'; 
            } 
            $n=0; 
            foreach ($wh as $k => $v) { 
                $n++; 
                if (count($arr)==$n) 
                $parw .= '`'. $k .'`=\''.$v.'\''; 
                else 
                $parw .= '`'. $k .'`=\''.$v.'\' &&'; 
            } 
            switch ($method) { 
            case 'SELECT':  
                $req = 'SELECT * FROM '. $db .' WHERE '. $par;  
                break; 
            case 'UPDATE': 
                $req = 'UPDATE '.$db.' SET '.$parw.' WHERE '. $par; 
            } 
            $q['req'] = mysql_query($req); 
            $q['arr'] = mysql_fetch_array($q['req']); 
            return $q; 
        }

    skad0, 07 Мая 2011

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

    +155

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    {{if $remove_email eq "Y"}}
    <script type="text/javascript">
    	if( confirm("Are you sure you want to delete email \"{{$email|escape}}\"?") )
    		document.location.href="http://{{$host}}/email.html?action=remove_email&confirm=Y";
    </script>
    {{/if}}

    Смарти феерия продолжается. Теперь редиректы с яваскриптом

    govno, 19 Апреля 2011

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