1. 1C / Говнокод #11902

    −121

    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
    Процедура аСсылкиПриЗаписиПриЗаписи(Источник, Отказ) Экспорт
    	
    	Если аСервер.ЗагрузкаПоОбменуРиб(Источник) Тогда
    		Возврат
    	КонецЕсли;
    	
    	Если ТипЗнч(Источник)=Тип("СправочникОбъект.Корреспонденты") Тогда
    		
    		Если Источник.ОбменДанными.Загрузка Тогда Возврат; КонецЕсли;
    		Если Источник.Ссылка.ЭтоГруппа Тогда Возврат; КонецЕсли;
    		Если Источник.Предопределенный Тогда Возврат; КонецЕсли;
    		Источник.ОбменДанными.Загрузка=Истина;
    		Источник.Записать(); //Записать() в подписке ПриЗаписи() - крутой костыль
    		Источник.ОбменДанными.Загрузка=Ложь;
    		Источник.Комментарий = ...

    Вот такая вот подписка при записи любых ссылок. 3 Если подряд? Логическое умножение - не, не слышал. Зато Записать() в подписке ПриЗаписи - слышал. Автор Хан Юрий Валентинович.

    ilya2184, 10 Октября 2012

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

    +156

    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
    function isProperty(object, property) {
        "use strict";
        var p, names, original = object,
            ecmaTypes = [Object, Array, String, Number, Date];
        try {
            for (p = 0; p < ecmaTypes.length; p += 1) {
                if (ecmaTypes[p] == object) {
                    console.log("looking up: " + ecmaTypes[p]);
                    names = Object.getOwnPropertyNames(ecmaTypes[p]);
                    if ('prototype' in ecmaTypes[p]) {
                        names = names.concat(
                            Object.getOwnPropertyNames(
                                ecmaTypes[p].prototype));
                    }
                    break;
                }
            }
            do {
                object = object.prototype.__proto__.constructor;
                names = names ?
                    names.concat(Object.getOwnPropertyNames(object)) : [];
                if ('prototype' in object) {
                    names = names.concat(
                        Object.getOwnPropertyNames(object.prototype))
                }
            } while  (object != Object)
            if (!names) {
                names = Object.getOwnPropertyNames(object);
            }
        } catch (error) {
            for (p in object) {
                if (object[p] == property) {
                    return true;
                }
            }
            return false
        }
        for (p = 0; p < names.length; p += 1) {
            if (original[names[p]] == property ||
                original.prototype[names[p]] == property) {
                return true;
            }
        }
        return false;
    }

    А как еще узнать, является ли функция методом принадлежащим объекту или нет? Это еще после трех часов проведенных в муках пытаясь понять, что вообще происходит.

    wvxvw, 10 Октября 2012

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

    +48

    1. 1
    2. 2
    3. 3
    PHP supports eight primitive types - four scalar types, two compound types and finally three special types.
    
    8 == 4+2+3?

    http://www.php.net/manual/en/language.types.intro.php

    defecate-plusplus, 09 Октября 2012

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

    +47

    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
    private function getLastDate($year, $month)
        {
            $next_year = $year;
            $next_month = $month + 1;
            if ($next_month == 13) {
                $next_month = 1;
                $next_year++;
            }
            $next_time = mktime(0, 0, 0, $next_month, 1, intval($next_year));
    
            $lastdate = strtotime('-1 day', $next_time);
            $last_day = date('d', $lastdate);
    
            return $last_day;
        }

    date('t', strtotime("$year-$month-01"));

    nekufa, 09 Октября 2012

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

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    var body=document.getElementsByTagName('body')[0];
    var newBody="";
    newBody='<div id="'+this.cntID+'" class="hide you">'+this.flashCntDivArr.join('')+'</div>'+bgLayerDiv+"<div id='tplCnt'>"+body.innerHTML+"</div>";
    body.innerHTML=newBody;

    Натолкнулся в одном из проектов на такой вот способ добавления элемента в DOM. Я чего-то не понимаю?

    nbspjr, 09 Октября 2012

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

    +50

    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
    //Зарплата с пересчетом в уях
    $salary = NULL;
    $parse_array[2] = str_replace('от','',$parse_array[2]); //Выпиливаем слово "от", на нем спотыкается прегматч и дергалка ЗП
    $parse_array[2] = str_replace('От','',$parse_array[2]);
    $parse_array[2] = trim($parse_array[2]);
    if (strpos($parse_array[2],"у.е."))
                	{
                    	$salary_currency = "у.е.";
                    } else
                    {
                    $salary_currency = "руб.";
                    }
    $salary = substr($parse_array[2], 0 , strpos($parse_array[2]," "));
    if ($salary_currency!="руб.") {$salary = $salary*$options["ue_value"];}
    //конец выдергивания зарплаты

    Внимание! Все комментарии в коде - реальны...

    SnaIK, 09 Октября 2012

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

    +146

    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
    (function() {
        var elms = document.getElementsByClassName("tab");
        for( var i=0, l = elms.length; i<l; i++) {
            (function(i) {
                elms[i].onclick = function() {
                    var container=document.getElementsByTagName("span")[i];       
                    var this_height = container.offsetHeight;
                    if (document.getElementsByTagName("p")[i].style.height==this_height+"px") { // If 
                        var count = this_height;
                        var timeout_id = setInterval( function() {
                            if (count > 1) {
                                count--;
                            } else { clearTimeout(timeout_id); }
                            document.getElementsByTagName("p")[i].setAttribute("style", "height:"+count+"px");
                        } , 1)
                    } else {
                        var count = 0;
                        var timeout_id = setInterval( function() {
                            if (count < this_height) {
                                count++;
                            } else { clearTimeout(timeout_id); }
                            document.getElementsByTagName("p")[i].setAttribute("style", "height:"+count+"px");
                        } , 1)
                    }
                    
                };
            })(i);
        }
    })();

    Простейший аккордион.

    Emilco, 09 Октября 2012

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

    +48

    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
    $sql='SELECT DISTINCT id,title,img,description,adder,added,
    GROUP_CONCAT(DISTINCT cid,"-",caty ) AS caty,
    GROUP_CONCAT(DISTINCT oid,"-",obs,"-",face,"-",rola,"-",typ) AS obs
    FROM film
    LEFT JOIN f_c ON f_c.f_id = film.id
    LEFT JOIN cat ON f_c.c_id = cat.cid
    
    LEFT JOIN f_o ON f_o.f_id = film.id
    LEFT JOIN obs ON f_o.o_id = obs.oid
    
    WHERE film.id ='.$fid;
    
    $wynik=mysql_fetch_assoc(mysql_query($sql));
    if(isset($wynik['id'])){
    $array  = explode(',', $wynik['obs']);
    
    $r=array();//director - 0
    $s=array();//Screenwriter - 1
    $ak=array();//actors - 2
    $akn=array();//actors 2 plan - 3
    $np=array();//From Idea By - 4
    $p=array();//producers - 5
    $m=array();//music - 6
    
    foreach ($array as $item)
    {
        $a = explode('-', $item);
        if( $a[4] == 0 ) {
            $r[] = $a[0].','.$a[1].','.$a[2].','.$a[3];
        }  elseif($a[4] == 1 ) {
            $s[] = $a[0].','.$a[1].','.$a[2].','.$a[3];
        }  elseif($a[4] == 2 ) {
            $ak[] = $a[0].','.$a[1].','.$a[2].','.$a[3];
        }  elseif($a[4] == 3 ) {
            $akn[] = $a[0].','.$a[1].','.$a[2].','.$a[3];
        }  elseif($a[4] == 4 ) {
            $np[] = $a[0].','.$a[1].','.$a[2].','.$a[3];
        }  elseif($a[4] == 5 ) {
            $p[] = $a[0].','.$a[1].','.$a[2].','.$a[3];
        }  elseif($a[4] == 6 ) {
            $m[] = $a[0].','.$a[1].','.$a[2].','.$a[3];
        }
    }
    
    function dzielperson($data){    
        $i = 0;
        $ile=count($data);
        while ($i < $ile) {
            $a  = explode(",", $data[$i]);
            $caty='<a href="/person/'.dolink($a[1]).'-'.$a[0].'" class="link1">'.$a[1].'</a>'.($i==($ile-1) ? '':', ');
            $i++;
        }
        return $caty;
    }
    
    echo '<br>Title: '.$wynik[title];
    echo '<br>Desription: '.$wynik[description];
    echo '<br>directors: '.dzielperson($r);
    echo '<br>screenwriters: '.dzielperson($s);
    echo '<br>actors: '.dzielperson($ak);
    echo '<br>actors 2 plan: '.dzielperson($akn);
    echo '<br>From Idea By '.dzielperson($np);
    echo '<br>Producers: '.dzielperson($p);
    echo '<br>Music: '.dzielperson($m);

    Lowezar, 08 Октября 2012

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

    +32

    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
    #include <iostream>
     
    void f(char c)          { std::cout << "f(char)" << std::endl; }
    void f(signed char c)   { std::cout << "f(signed char)" << std::endl; }
    void f(unsigned char c) { std::cout << "f(unsigned char)" << std::endl; }
     
    int main()
    {
            f('a');
            f((signed char)('a'));
            f((unsigned char)('a'));
            return 0;
    }

    илитный ресурс сегодня мне раскрыл глаза на очередное крестоблядство керниган-гай-ричи-блядство:
    с:
    The implementation shall define char to have the same range, representation, and behavior as either signed char or unsigned char.
    Irrespective of the choice made, char is a separate type from the other two and is not compatible with either.
    с++:
    Characters can be explicitly declared unsigned or signed. Plain char, signed char, and unsigned char are three distinct types.

    defecate-plusplus, 08 Октября 2012

    Комментарии (55)
  10. JavaScript / Говнокод #11892

    +154

    1. 1
    $(this).parent().parent().next().next().css({ visibility: 'visible' });

    musuk, 08 Октября 2012

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