1. PHP / Говнокод #20419

    +7

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    function redirect($url)
    {
    	header('Location:'.$url);
    	echo '<script>document.location.href = \''.$url.'\';</script>';
    	exit;
    }

    eskrano, 24 Июля 2016

    Комментарии (14)
  2. Куча / Говнокод #20415

    +3

    1. 1
    ^[\s\u200c]+|[\s\u200c]+$

    Стековерфло не могут в регулярные выражения или регулярные выражения не могут в простейшую задачу?
    http://stackstatus.net/post/147710624694/outage-postmortem-july-20-2016

    kipar, 23 Июля 2016

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

    +7

    1. 1
    github.com/natribu/natribu.org

    Исходники официального сайта нахуй, жесть

    dm_fomenok, 22 Июля 2016

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

    0

    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
    function CheckPropertyForSend(&$fields) {
        if ($fields["IBLOCK_ID"] == CATALOG_ID) {
            $arFilter = array("IBLOCK_ID" =>CATALOG_ID, "ID"=>$fields["ID"], "PROPERTY_NOT_ALLOWED" =>92);
            $res = CIBlockElement::GetList(Array(), $arFilter);
    
            if($res->SelectedRowsCount() == 1){
                $GLOBALS['NEED_CHECK'] = true;
            }else{
                $GLOBALS['NEED_CHECK'] = false;
            }
    
            $prod = LenalHelp::getProductInfo($fields["ID"]);
            $count = 0;
            $cheked = ( $fields["PROPERTY_VALUES"][580][0]["VALUE"] == 92 ) ? true : false;
            foreach ( $prod["STORES"] as $item ) {
                if ( $item["PRODUCT_AMOUNT"] ) {
                    $count += $item["PRODUCT_AMOUNT"];
                }
            }
    
            // -- убираем фдаг "нет в наличии" ---
            if ( $count > 0 && $cheked ) {
                $fields["PROPERTY_VALUES"][580] = "";
            }
            // -- устанавливаем фдаг "нет в наличии" ---
            if ( $count == 0 && !$cheked ) {
                $fields["PROPERTY_VALUES"][580][0]["VALUE"] = 92;
            }
    
        }
    }

    Платформа Битрикс, Lenal гребанные ублюдки

    lscin, 22 Июля 2016

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

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    <?if( $arResult['PROPERTIES']['NOT_ALLOWED']['VALUE'] == 'да' || $arItem["PROPERTIES"]["NOT_ALLOWED"]["VALUE_XML_ID"] == "Y" ) { ?>
    				<div class="alert-empty alert--licence">
    					<?$APPLICATION->IncludeComponent(
    						"bitrix:main.include",
    						"",
    						Array(
    							"AREA_FILE_SHOW" => "file",
    							"PATH" => SITE_DIR."/inc/card_not_allowed.php",
    							"EDIT_TEMPLATE" => ""
    						)
    					);?>

    Платформа Битрикс, очередное творение Lenal в шаблоне компонента.

    Сравнение значения с КИРИЛИЦЕЙ в template.php.

    lscin, 22 Июля 2016

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

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    #include <windows.h>
    int main() {
    	HDC dc = CreateCompatibleDC (NULL);
    	SetLayout (dc, LAYOUT_RTL);
    	ScaleWindowExtEx (dc, -2147483647 - 1, -1, 1, 1, NULL);
    }

    bsod

    laMer007, 22 Июля 2016

    Комментарии (47)
  7. C++ / Говнокод #20408

    +4

    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
    void delslovo(char *a)
    {
        static int i = 0;
        static bool j = false;
        if (a[i++] != '\0')     delslovo(a);
        else i--;
        if (!j)
        {
            if (a[i] != ' '&&a[i] != '\n'&&a[i] != '\0')
            {
                j = true;
                i++;
            }
        }
        if (j)
        {
            if (a[i - 1] == ' ') return;
            a[i - 1] = a[i];
        }
        i--;
    }

    вот так надо удалять последнее слово из строки

    beckon, 22 Июля 2016

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

    −3

    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
    <?php
    
    if(!class_exists('avia_breadcrumb'))
    {
    	class avia_breadcrumb
    	{
    		var $options;
    
    	function __construct($options = ""){
    
    		$this->options = array( 	//change this array if you want another output scheme
    		'before' => '<span class="arrow"> ',
    		'after' => ' </span>',
    		'delimiter' => '&raquo;'
    		);
    
    		if(is_array($options))
    		{
    			$this->options = array_merge($this->options, $options);
    		}
    
    
    		$markup = $this->options['before'].$this->options['delimiter'].$this->options['after'];
    
    		global $post;
    		echo '<p class="breadcrumb"><span class="breadcrumb_info">'.__('You are here:','avia_framework').'</span> <a href="'.get_bloginfo('url').'">';
    			bloginfo('name');
    			echo "</a>";
    			if(!is_front_page()){echo $markup;}
    
    			$output = $this->simple_breadcrumb_case($post);
    
    			echo "<span class='current_crumb'>";
    			if ( is_page() || is_single()) {
    			the_title();
    			}else{
    			echo $output;
    			}
    			echo " </span></p>";
    		}
    
    		function simple_breadcrumb_case($der_post)
    		{
    			global $post;
    
    			$markup = $this->options['before'].$this->options['delimiter'].$this->options['after'];
    			if (is_page()){
    				 if($der_post->post_parent) {
    					 $my_query = get_post($der_post->post_parent);
    					 $this->simple_breadcrumb_case($my_query);
    					 $link = '<a href="';
    					 $link .= get_permalink($my_query->ID);
    					 $link .= '">';
    					 $link .= ''. get_the_title($my_query->ID) . '</a>'. $markup;
    					 echo $link;
    				  }
    			return;
    			}
    
    		if(is_single())
    		{
    			$category = get_the_category();
    			if (is_attachment()){
    
    				$my_query = get_post($der_post->post_parent);
    				$category = get_the_category($my_query->ID);
    
    				if(isset($category[0]))
    				{
    					$ID = $category[0]->cat_ID;
    					$parents = get_category_parents($ID, TRUE, $markup, FALSE );
    					if(!is_object($parents)) echo $parents;
    					previous_post_link("%link $markup");
    				}
    
    			}else{
    
    				$postType = get_post_type();
    
    				if($postType == 'post')
    				{
    					$ID = $category[0]->cat_ID;
    					echo get_category_parents($ID, TRUE, $markup, FALSE );
    				}
    				else if($postType == 'portfolio')
    				{
    					$terms = get_the_term_list( $post->ID, 'portfolio_entries', '', '$$$', '' );
    					$terms = explode('$$$',$terms);
    					echo $terms[0].$markup;
    
    				}
    			}
    		return;
    		}

    Собственно вся суть, 2а раза генерируются, смотрел в функшин где написан код, все чисто, но все равно 2а раза генерируется

    Получается грубо говоря:

    You here: Home / <b>Hello world</b> / %category% / <b>Hello world</b>

    Не могли бы помочь. Или куда смотреть, был бы благодарен.

    olee444, 21 Июля 2016

    Комментарии (14)
  9. Java / Говнокод #20404

    +12

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    return isValidYear(args[4]) ? 
    		  (isValidMonth(args[3]) ? 
    			  (isValidDayOfMonth(args[2]) ? 
    				  (isValidDayOfWeek(args[1]) ? 
    					  (isValidTime(args[0]) ? true 
    					  : false)
    				  : false) 
    			  : false) 
    		  : false) 
    	   : false;

    Не знал, что последовательность && выполняется до первого false, хотел избежать вызова лишних методов при первом ложном результате.

    carapuz, 21 Июля 2016

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

    +4

    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
    #include <IO/Stream.h>
    #include "Algorithms/Range.h"
    #include "Algorithms/RangeConstruct.h"
    #include "Algorithms/RangeIteration.h"
    #include "Algorithms/RangeMutation.h"
    
    using namespace IO;
    using namespace Range;
    
    int main()
    {
      Console.PrintLine("Есть нормальная поддержка Юникода в консоли, даже на винде.");
      Console.PrintLine("Тестируется текст с кириллицей, греческим алфавитом αβγδεζηθικλμνξο, а также с иероглифами ㈇㌤㈳㌛㉨.");
      Console.PrintLine("Иероглифы не отображаются в консоли, потому что консольный шрифт их не содержит, но копируются оттуда нормально.");
    
       StringView strs[] = {"hello", "world"};
      StringView strs1[]  = {"range", "testing", "program"};
      StringView strs2[] = {"C++", "крут"};
    
      Console.PrintLine("В тесте используются три массива:", endl, strs, endl, strs1, endl, strs2);
      Console.PrintLine(endl, "Пример вывода initializer list:", endl, AsRange<double>({4353.435, 3243.23, 21.421, 12355.5, 64532}));
    
      auto fib = Recurrence(Algo::Op::Add<int>, 1, 1);
    
      Array<int> fibArr;
      fibArr.SetCountUninitialized(15);
      auto copyResult = fib.Take(15).Copy(fibArr());
      Console.PrintLine(endl, "Последовательность Фибоначчи в массиве: ", endl, fibArr());
      Console.PrintLine(endl, "Вторая половина того же массива задом наперёд: ", endl, fibArr($/2, $).Retro());
    
      fib.Drop(5).Take(15).Copy(fibArr.Insert($));
      Console.PrintLine(endl, "Добавляем 15 чисел Фибоначчи, начиная с пятого, в конец. Новое содержимое массива: ");
      Console.PrintLine(fibArr());
    
      Console.PrintLine(endl, "Объединяем элементы различных диапазонов в диапазоне кортежей: ", endl, ToString(
        Zip(
          fib.Take(30),
          Chain(AsRange(strs), AsRange(strs1), AsRange(strs2)).Cycle().Take(20),
          Recurrence([](int a, int b){return a*2+b;}, 1, 1).Take(17).Cycle().Drop(3).Take(22),
          fib.Take(19).Cycle().Drop(5).Take(50).Stride(3),
          Recurrence(Algo::Op::Mul<ulong64>, 2ull, 3ull).Take(9)
        ), 
        ",\n  ", "[\n  ", "\n]"));
    
    
      static const StringView pattern[] = {"pattern", "fills", "range"};
      Chain(AsRange(strs), AsRange(strs1), AsRange(strs2)).FillPattern(AsRange(pattern));
    
      Console.PrintLine(endl, "Поменяли сразу три массива одним вызовом FillPattern: ");
      Console.PrintLine(strs, endl, strs1, endl, strs2, endl);
    
      Console.PrintLine("11-й элемент зацикленного массива строк: ", endl, AsRange(strs).Cycle().Take(11).Tail(1), endl);
      Console.PrintLine("Перевёрнутый массив строк: ", endl, AsRange(strs).Retro(), endl);
      Console.PrintLine("Зациклили первые два элемента массива и взяли 10 из них:");
      Console.PrintLine(AsRange(strs1).Take(2).Cycle().Take(10) );
      Console.PrintLine("Между массивом строк и 5 числами Фибоначчи выбрали второе в рантайме: ");
      Console.PrintLine(Choose(AsRange(strs1), fib.Take(5).Map([](int x){return ToString(x);}), true) );
    
      static const size_t indices[] = {1,1,1,2,2,0,2,1,0};
      Console.PrintLine(
          RoundRobin(
            AsRange(strs1).Indexed(AsRange(indices)),
            Repeat(StringView("Test"), 5),
            AsRange(strs1),
            AsRange(strs2)
          ));
      
    
      Console.PrintLine(endl, "Введите строки, которые войдут в диапазон строк. В конце введите \"end\".");
      Console.PrintLine("Вы ввели следующие строки:", endl, ToString(Console.ByLine("end")) );
    
      int arr[]={1, 4, 11, 6, 8};
      Console.PrintLine("max{1, 4, 11, 6, 8} = ", AsRange(arr).Reduce(Algo::Op::Max<int>));
    
      Console.PrintLine("Генерация 100 случайных чисел от 0 до 999 и вывод квадратов тех из них, которые делятся на 7: ", endl,
        Generate([](){return math::urandom()%1000;}).Take(100)
        .Filter([](uint x) {return x%7==0;})
        .Map(math::sqr<uint>)
      );
    
      return 0;
    }

    Давно здесь не было моих велосипедов. А они с тех пор сильно эволюционировали, я даже многие фичи из языка D смог перенести в C++.
    Вывод в консоль и обсуждение здесь: http://www.gamedev.ru/flame/forum/?id=216045&page=99#m1481

    gammaker, 20 Июля 2016

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