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

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

    +129

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    private static BigDecimal ZERO;
    private static BigDecimal ONE;
    private static BigDecimal TWO;
    private static BigDecimal FIVE;
    private static BigDecimal FOUR;
    private static BigDecimal SEVEN;
    public static BigDecimal SMALLDECIMAL;
    private static BigDecimal THREEHUNDRED;

    http://multilevellayout.googlecode.com/svn-history/r13/trunk/MultilevelLayoutPlugin/src/multilevelLayoutPlugin/MultilevelLayoutAlgorithm.java

    someone, 15 Июля 2012

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

    +66

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    // Масив с выбором
    if ($type=="textAr") {
    	foreach ($stext as $key=>$row) {
    		if ($key==$data) {
    			return $row;
    			break;
    		}
    	}
    }

    Кто-то тролит хостинг...
    Заменено на if ('textAr'==$type && isset($stext[$data]) ) return $stext[$data];

    domaster, 22 Июня 2012

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

    +52

    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
    <?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
    <?if (!empty($arResult)):?>
    <ul id="horizontal-multilevel-menu">
    <?
    $previousLevel = 0;
    foreach($arResult as $arItem):?>
    	<?if ($previousLevel && $arItem["DEPTH_LEVEL"] < $previousLevel):?>
    		<?=str_repeat("</ul></li>", ($previousLevel - $arItem["DEPTH_LEVEL"]));?>
    	<?endif?>
    	<?if ($arItem["IS_PARENT"]):?>
    		<?if ($arItem["DEPTH_LEVEL"] == 1):?>
    			<li><a href="<?=$arItem["LINK"]?>" class="<?if ($arItem["SELECTED"]):?>root-item-selected<?else:?>root-item<?endif?>"><?=$arItem["TEXT"]?></a>
    				<ul>
    		<?else:?>
    			<li<?if ($arItem["SELECTED"]):?> class="item-selected"<?endif?>><a href="<?=$arItem["LINK"]?>" class="parent"><?=$arItem["TEXT"]?></a>
    				<ul>
    		<?endif?>
    	<?else:?>
    		<?if ($arItem["PERMISSION"] > "D"):?>
    			<?if ($arItem["DEPTH_LEVEL"] == 1):?>
    				<li><a href="<?=$arItem["LINK"]?>" class="<?if ($arItem["SELECTED"]):?>root-item-selected<?else:?>root-item<?endif?>"><?=$arItem["TEXT"]?></a></li>
    			<?else:?>
    				<li<?if ($arItem["SELECTED"]):?> class="item-selected"<?endif?>><a href="<?=$arItem["LINK"]?>"><?=$arItem["TEXT"]?></a></li>
    			<?endif?>
    		<?else:?>
    			<?if ($arItem["DEPTH_LEVEL"] == 1):?>
    				<li><a href="" class="<?if ($arItem["SELECTED"]):?>root-item-selected<?else:?>root-item<?endif?>" title="<?=GetMessage("MENU_ITEM_ACCESS_DENIED")?>"><?=$arItem["TEXT"]?></a></li>
    			<?else:?>
    				<li><a href="" class="denied" title="<?=GetMessage("MENU_ITEM_ACCESS_DENIED")?>"><?=$arItem["TEXT"]?></a></li>
    			<?endif?>
    		<?endif?>
    	<?endif?>
    	<?$previousLevel = $arItem["DEPTH_LEVEL"];?>
    <?endforeach?>
    <?if ($previousLevel > 1)://close last item tags?>
    	<?=str_repeat("</ul></li>", ($previousLevel-1) );?>
    <?endif?>
    </ul>
    <div class="menu-clear-left"></div>
    <?endif?>

    Очередной говнокод от битрикса. "Генерация" выпадающего горизонтального меню.

    avtorfox, 12 Июня 2012

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

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    switch (achievements.length) {
      case 0: return 0;
      case 1: return 30;
      case 2: return 60;
      case 3: return 75;
      case 4: return 90;
      case 5: return 100;
      default: return 0;
    }

    зато не if'ы

    dimalev, 07 Июня 2012

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

    +70

    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
    <? // файл data/conf/config.php
    $user = array (
    "0" => array("administrator", "bita98"),
    "1" => array("ml.administrator", "select11"),
    "2" => array("moderator", "argument19")
    );
    ?>
    
    <? // Другой файл, для смены пароля
    $pass = $_POST["pass"];
    $new_pass = $_POST["new_pass"];
    
    $files = file('data/conf/config.php');
    foreach ($files as $key=>$value)
    {
    $files[$key]=str_replace($pass, $new_pass, $value);
    }
    
    $f = fopen("data/conf/config.php","w+");
    foreach ($files as $keys=>$values)
    {
    fwrite($f,$values);
    }
    fclose($f);
    
    echo "<h2>Пароль " . $pass . " пользователя " . $_SESSION["username"] . ", был изменен на " . $new_pass . "</h2>";
    
    $_SESSION['password'] = null;
    $_SESSION['password'] = $new_pass;
    ?>

    Вот как нужно редактировать массивы в исходниках!
    cbr-admin.v2.1.7

    alex322, 02 Июня 2012

    Комментарии (20)
  8. Java / Говнокод #10324

    +74

    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
    public static boolean isBouncy(long n) {
    	boolean isBouncy = false;
    	String num = Long.toString(n);
    	String[] seperateDigits = new String[num.length()+1];
    	for (int i=1; i <= num.length(); i++) {
    		seperateDigits[i] = num.substring(i-1,i);
    	}
    	int firstDig = Integer.parseInt(num.substring(0,1));
    	int cDig;
    	int iDeg = 0;
    	int cDeg = 0;
    	int dig0;
    	int dig1;
    	for (int i = 2; i <= seperateDigits.length-1; i++) {
    		if (!isBouncy) {
    			dig0 = Integer.parseInt(seperateDigits[i-1]);
    			dig1 = Integer.parseInt(seperateDigits[i]);
    			if (i == 2) iDeg = getDegree(dig0, dig1);
    			else {
    				cDeg = getDegree(dig0,dig1);
    				if (iDeg == 0) iDeg = cDeg;
    				else if (cDeg == -iDeg) isBouncy = true;
    			}
    		}
    	}
    	if (iDeg == 0) isBouncy = false;
    	return isBouncy;
    }

    http://projecteuler.net/problem=112
    http://projecteuler.net/thread=112&page=6#63821


    >Nothing intuitive about it at all

    TheHamstertamer, 19 Мая 2012

    Комментарии (20)
  9. C++ / Говнокод #10120

    +25

    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
    /*
        Шаг по оси, представляет собой число из следующего ряда:
        ... 0.02 0.05 0.1 0.2 0.5 1 2 5 ...
        next и prev позволяют перемещаться в обе стороны по ряду
        после создания хранится число 1
    */
    class Step
    {
    public:
        Step()
        {
            scale = 1; pr = 1; type=0;
        }
        void next()
        {
            // шаг вперед
            type++;
            if (type==1)
                scale = pr * 2;
            else if (type==2)
                scale = pr * 5;
            else
            {
                type = 0;
                pr *= 10;
                scale = pr;
            }
        }
        void prev()
        {
            // шаг назад
            type--;
            if (type==0)
                scale = pr;
            else if (type==1)
                scale = pr*2;
            else
            {
                type = 2;
                pr /= 10;
                scale = pr*5;
            }
        }
        operator float()
        {
            return scale;
        }
    protected:
        float scale;    // текущее значение
        float pr;       // недомноженое значение 1 10 100 ...
        int type;       // 0 - x1 1 - x2 2 - x5
    };

    http://govnokod.ru/10117 напомнил о том, как я когда-то рисовал график, и для меток на осях потребовались те же самые красивые значения [... 0.1 0.2 0.5 1 2 5 ...]

    bormand, 30 Апреля 2012

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

    +102

    1. 1
    2. 2
    3. 3
    <html class="html">
    .............
    </html>

    Бывает и такое

    Hits, 27 Апреля 2012

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

    +92

    1. 1
    "".equalsIgnoreCase(propertiesFile) != true

    индусское достояние

    Desperate, 22 Апреля 2012

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