1. JavaScript / Говнокод #3724

    +152

    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
    Map = function() {
        this._entries = new Array();
    }
    
    Map.prototype.containsKey = function(key) {
        return this.getEntry(key)!=null;
    }
    
    Map.prototype.get = function(key) {
        var entry = this.getEntry(key);
        return entry!=null ? entry.value : null;
    }
    
    Map.prototype.put = function(key, value) {
        var entry = this.getEntry(key);
        if (entry!=null) {
            entry.value = value;
        } else {
            entry = new Map.Entry(key, value);
            this._entries[this._entries.length] = entry;
        }
    }
    
    Map.prototype.size = function() {
        return this._entries.length;
    }
    
    Map.prototype.getEntry = function(key) {
        for (var i=0; i<this._entries.length; i++) {
            if (this._entries[i].key==key)
                return this._entries[i];
        }
        return null;
    }
    
    Map.prototype.entries = function() {
        return this._entries;
    }
    
    Map.prototype.keys = function() {
        var result = new Array();
        for (var i=0; i<this._entries.length; i++) {
            result[result.length] = this._entries[i].key;
        }
        return result;
    }
    
    Map.prototype.values = function() {
        var result = new Array();
        for (var i=0; i<this._entries.length; i++) {
            result[result.length] = this._entries[i].value;
        }
        return result;
    }
    
    Map.prototype.addAll = function(map) {
        if (map==null)
            return;
        var oe = map.entries();
        for (var i=0; i<oe.length; i++) {
            this.put(oe[i].key, oe[i].value);
        }
    }
    
    Map.prototype.toString = function() {
        return "[Map{size:"+this._entries.length+", entries:"+this._entries+"}]";
    }
    
    Map.Entry = function(key, value) {
        if (arguments.length==0)
            return;
        this.key = key;
        this.value = value;
    }
    
    Map.Entry.prototype.toString = function() {
        return "[Entry{key:"+this.key+", value:"+this.value+"}]";
    }

    То что любой объект и так работает как Map автор видимо не знал.
    Можно было бы предположить, что автор это знал, но написал этот Map для того чтобы использовать произвольные объекты как ключи, однако во всех обнаруженных использованиях этой Map ключами были строки.

    borka, 17 Июля 2010

    Комментарии (12)
  2. SQL / Говнокод #3723

    −866

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    sBigDad	    varchar2(200) := '';
    vaKids		ids_va	:= ids_va();
    vaDads		ids_va	:= ids_va();
    vaBigDads	ids_va	:= ids_va();
    vaGrandKids	ids_va	:= ids_va();
    vaTempKids	ids_va	:= ids_va();

    borka, 17 Июля 2010

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

    +159

    1. 1
    Boolean.prototype.toLocaleString = function () { return this; return this ? 'Yes' : 'No' }

    пукнул...

    bugmenot, 16 Июля 2010

    Комментарии (8)
  4. Pascal / Говнокод #3721

    +97

    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
    procedure TStdMessageInfo.Build(pMessage: String; pKind: Integer);
    var List: TStringList;
    begin
      List := TStringList.Create;
      try {!!! это такой хитрый способ заменить #13 на #13#10}
        List.Text := pMessage;
        if List.Count = 1 then FMessage := List[0]
        else FMessage := List.Text;
      finally
        List.Free;
      end;
      FKind := pKind;
    end;

    borka, 16 Июля 2010

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

    +158

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Object.prototype.addEvent = function (type, handler) {
    	for (var i = 0; i < this.length; i++) {
    		this[i]['on' + type] += ';' + (handler + '').replace(/function.+?\{/, '').replace(/}$/, '');
    	}
    	return this;
    };

    eval, 16 Июля 2010

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

    +153

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    #define DOISA(x,p,y)              \
    ClassID x::isA() const{return y;} \
    MYBoolean x::isA(ClassID i) const \
    {                                 \
    	return (i == x::isA() ? TRUE : p::isA(i)); \
    }

    Ядро большого проекта. Имеется довольно большая иерархия наследуемых классов с виртуальными методами isA(). Все эти методы зачем-то сворачиваются в этот макрос.

    DarthBobr, 16 Июля 2010

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

    +159

    1. 1
    echo $Router->index->title->DB->select("SELECT title FROM content WHERE id = 1");

    pasha, 16 Июля 2010

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

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    $razn = mktime(0,0,0,$m,$d,$y); 
    
    $vozrast = (time() - $razn) / 31536000; 
    
    return explode(".",$vozrast);

    из кода одного крупного сайта, сделанного на заказ

    Мартин, 16 Июля 2010

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

    +157

    1. 1
    2. 2
    $wpdb->query($wpdb->prepare("INSERT INTO `".WPSC_TABLE_CART_CONTENTS."` (`prodid`, `name`, `purchaseid`, `price`, `pnp`,`tax_charged`, `gst`, `quantity`, `donation`, `no_shipping`, `custom_message`, `files`, `meta`) VALUES ('%d', '%s', '%d', '%s', '%s', '%s', '%s', '%s', '%d', '0', '%s', '%s', NULL)", $this->product_id, $this->product_name, $purchase_log_id, $this->unit_price, (float)$shipping, (float)$tax, (float)$tax_rate, $this->quantity, $this->is_donation, $this->custom_message, serialize($this->custom_file)));
    		$cart_id = $wpdb->get_var("SELECT LAST_INSERT_ID() AS `id` FROM `".WPSC_TABLE_CART_CONTENTS."` LIMIT 1");

    Это код WP-Ecommerce. Ахтунг!

    karevn, 16 Июля 2010

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

    +163

    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
    <?php  
    // Создание массива из строки 
    if($_POST['add_array']=="Получит массив") 
    { 
       // новый массив для заполнения значениями 
       $new_arr = array(); 
       $text = explode(",", htmlspecialchars($_POST['text'])); 
       for($i=0; $i<count($text); $i++) 
       { 
             $vol = "<".$text[$i].">"; 
             array_push($new_arr,$vol); 
       } 
       print_r($new_arr); 
    } 
    ?>
    <form  method="post" action="">
      Введите  текст:<br>
      <textarea name="text" cols="70" rows="5"></textarea>
      <br>
      <br>
      <input name="add_array" type="submit" value="Получит массив">
    </form>

    Нашел на одном сайте с уроками по PHP.

    Мартин, 16 Июля 2010

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