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

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

    +157

    1. 1
    print str_replace('collapsed', '', str_replace('expanded', '', str_replace('leaf', '', menu_tree($menu_name = 'menu-fabric'))))

    Вывод меню через файл шаблона в Drupal…

    Razunter, 16 Июня 2011

    Комментарии (3)
  3. SQL / Говнокод #6949

    −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
    16. 16
    17. 17
    create or replace procedure rout_cancel (
      p_sql varchar2
    ) is
      v_curs sys_refcursor;
    begin
      if v_curs%isopen then
        close v_curs;
      end if;
      begin
        open v_curs for p_sql;
      exception
        when others then
          raise_application_error(-20000, 'Unable to open cursor');
      end;
      rout_cancel_details(v_curs);
      close v_curs;
    end;

    6-8: Кто ж тебя открыть-то успел?!

    dwinner, 14 Июня 2011

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

    +164

    1. 1
    2. 2
    3. 3
    foreach ($params as $k => $v) {
                eval('$this->' . $k . ' = $v;');
            }

    Yurik, 12 Июня 2011

    Комментарии (3)
  5. ActionScript / Говнокод #6793

    −108

    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
    addEventListener(Event.ENTER_FRAME, function(e){clip.mov.apply(clip,[e])});
    
    clip.mov = function(e:Event):void{
    	if(!this.is_mov && !this.is_mov_end) return;
    		this.ii++;
    		if(this.ii == this.speed){
    			this.clip.x = this.end_x;
    			this.clip.y = this.end_y;
    		if(this.is_mov_end){
      			this.is_mov = false;
      			this.is_mov_end = false;
    		} else {
      			this.getNewCoord.apply(this);
    		}
     	return;
    	}
    	this.clip.x = this.start_x + int((this.end_x - this.start_x)/this.speed)*this.ii + int(Math.random()*2)-1;
    	this.clip.y = this.start_y + int((this.end_y - this.start_y)/this.speed)*this.ii + int(Math.random()*2)-1;
    }

    Дело было вечером, делать было нечего...
    Здесь имеет место вызов функции с подменой this.

    kyzi007, 31 Мая 2011

    Комментарии (3)
  6. Си / Говнокод #6744

    +140

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    // connection reset by peer?
          if(tcpflags & TCP_FLAG_RST)
          {
             st->status = TCP_CLOSED;
             if( (st->status == TCP_ESTABLISHED) ||
                (st->status == TCP_FIN_WAIT) )
             {
                tcp_closed(id, 1);
             }
             return;
          }

    из одного маленького эмбеддед-проектика)

    odmin, 24 Мая 2011

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

    +159

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if ($rightDisplayDelete == 1) {
        $images = $model->getData(1);
        $this->tmpl['pagination']	= &$model->getPagination(1);
    } else {
        $images = $model->getData(0);
        $this->tmpl['pagination']	= &$model->getPagination(0);
    }

    И снова модуль Phocagallery для Joomla!

    somebody, 20 Мая 2011

    Комментарии (3)
  8. ActionScript / Говнокод #6694

    −109

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    override public function call(... rest):void
    {
    	var callname:String = rest[0];
    	var paramsStr:String = "";
    	
    	for(var i:int = 1; i < rest.length; i++)
    	{
    		paramsStr += rest[i] + ((i == rest.length - 1) ? "" : ",");
    	}
    	
    	ExternalInterface.call("page.appplicationToVideoPage", callname, paramsStr);
    }

    Все тот же автор продолжает говнореализацию встроенных функций и классов. (Особого внимания заслуживает говноархитектура предполагающая вызывать reflection API через reflection. Т.е. page.appplicationToVideoPage - это функция, которая парсит аргументы обратно, и вызывает функцию callname с параметрами полученными из paramsStr. Человека не устроил ExternalInterface, и он решил его тоже, через жопу, реализовать еще раз, средствами, естесственно ExternalInterface).

    wvxvw, 17 Мая 2011

    Комментарии (3)
  9. ActionScript / Говнокод #6625

    −110

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    public function setCategory(categoryType:String):void
    {
    	giftIcon.visible 		= (categoryType == ActionsEnum.GIFTS);
    	effectIcon.visible 		= (categoryType == ActionsEnum.EFFECTS);
    	skinIcon.visible 		= (categoryType == ActionsEnum.SKINS);	
    	gamesIcon.visible 		= (categoryType == ActionsEnum.GAMES);
    	activtiesIcon.visible 	= (categoryType == ActionsEnum.APPLICATIONS);
    }

    Глядя на мир нельзя не удивлятся.

    wvxvw, 11 Мая 2011

    Комментарии (3)
  10. SQL / Говнокод #6622

    −861

    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
    /* Formatted on 2011/05/11 16:11 (Formatter Plus v4.8.7) */
    CREATE SEQUENCE tmpseq
    /
    CREATE TABLE tmpt(a NUMBER, b NUMBER)
    /
    CREATE OR REPLACE TRIGGER tmpt_bi
       BEFORE INSERT
       ON tmpt
       REFERENCING NEW AS NEW OLD AS OLD
       FOR EACH ROW
    BEGIN
       IF :NEW.a IS NULL
       THEN
          SELECT tmpseq.NEXTVAL
            INTO :NEW.a
            FROM DUAL;
       END IF;
    END;
    /
    DECLARE
       l_a   tmpt.a%TYPE;
       n     NUMBER;
    BEGIN
       FOR n IN 5 .. 8
       LOOP
          INSERT INTO tmpt
                      (b
                      )
               VALUES (n
                      )
            RETURNING a
                 INTO l_a;
    
          DBMS_OUTPUT.put_line (l_a);
       END LOOP;
    END;
    /
    select * from tmpt
    /
    DROP TRIGGER tmpt_bi
    /
    DROP TABLE tmpt
    /
    DROP SEQUENCE tmpseq
    /
    COMMIT

    иногда я не верю мануалам и проверяю себя небольшими кусочками кода. на этот раз я проверил конструкцию returning

    RomaShka, 11 Мая 2011

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

    +170

    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
    int key;
    float ar1[3];
    int ar2[3];
    int cnt = 0;
    if (P[min][0] > 0) {ar1[cnt] = P[0][0]/P[min][0]; ar2[cnt++] = 0;}
    if (P[min][1] > 0) {ar1[cnt] = P[0][1]/P[min][1]; ar2[cnt++] = 1;}
    if (P[min][2] > 0) {ar1[cnt] = P[0][2]/P[min][2]; ar2[cnt++] = 2;}
    if (cnt == 1)
        key = ar2[0];
    else if (cnt == 2)
        key = (ar1[0] < ar1[1] ? ar2[0] : ar2[1]);
    else
        key = (ar1[0] < ar1[1] ? (ar1[0] < ar1[2] ? ar2[0] : ar2[2]) : (ar1[1] < ar1[2] ? ar2[1] : ar2[2]));

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

    Kona-chan, 11 Мая 2011

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