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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    .td-basket .region>.td-list .td-a>p+div>p:first-child+p,
    .td-basket .region>.td-list>div>img+div>p+p>span,
    .td-basket .region>.td-list .td-a>p+div+div>p:first-child+p,
    .td-basket .region>.td-list h2
     {
       font-size: 16px;
    }

    Ниндзя-верстак

    dsxack, 22 Мая 2013

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

    −2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    <?php
    
    ...
    
    if( preg_match( "#\.#is", $current_rating ) )
    {
    	list( $n1, $n2 ) = explode( ".", $current_rating );
    	$current_rating = floatval( $n1.".".substr( $n2, 0, 2 ) );
    }

    round?

    faiwer, 22 Мая 2013

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

    +9

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    uint8_t* head = (uint8_t*) Buffer::Data(buffer);
    uint8_t* tail = head + Buffer::Length(buffer) - 1;
    
    // xor swap, just because I can
    while (head < tail) *head ^= *tail, *tail ^= *head, *head ^= *tail, ++head, --tail;

    https://github.com/bnoordhuis/node-buffertools/blob/master/buffertools.cc#L157

    movaxbx, 22 Мая 2013

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

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    delete
        from liaison
    where
        type = 'UsersGroup' and
        `group` = 'static_' || (select id from usergroup where name = :grp)

    Час назад вынес этим запросом все связи между группами и юзерами в боевой базе ;)

    P.S. Почему в mysql все дерьмо, работающее совсем не так, как оно работает почти во всех остальных СУБД, включено по умолчанию?

    bormand, 22 Мая 2013

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

    −2

    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
    function deleteDublicateItems(){
        $q = '
        select COUNT(*), id, vk_id
        from `items`
        group by `vk_id`
        having COUNT(*) > 1';
        $sql = mysql_query($q);
        
        if (mysql_num_rows($sql)){	
    	while($row = mysql_fetch_assoc($sql)){
    	    $sql2 = mysql_query('select * from `items` where `vk_id` = "'.$row['vk_id'].'" and `id` != "'.$row['id'].'"');
    	    
    	    if (mysql_num_rows($sql2)) {
    		while($row2 = mysql_fetch_assoc($sql2)) {
    		    $sql3 = mysql_query('select * from `images` where `item_id` = "'.$row2['id'].'"');
    		    
    		    if (mysql_num_rows($sql3)) {
    			while ($row3 = mysql_fetch_assoc($sql3)) {
    			    @unlink( ROOT . DS . 'uploads' . DS . 'images' . DS . $row3['name'] . '.' . $row3['ext']);
    			    mysql_query('delete from `images` where `id` = "'.$row3['id'].'"');
    			}
    		    }		    
    		    mysql_query('delete from `items` where `id` = "'.$row2['id'].'"');
    		}
    	    }
    	}
        }
    }

    удаление дубликатов

    Serious_Andy, 22 Мая 2013

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

    −5

    1. 1
    <cbimport_import_check_checkimport>

    надо вдуматся что бы понять
    нода из конфигурации модуля под маженто

    vesan, 21 Мая 2013

    Комментарии (1)
  7. Ruby / Говнокод #13029

    +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
    def self.process(site, object = nil, &block)
        dont_unblock = false
        block_res = true
    
        site.lock!
        if site.assets_blocked?
          dont_unblock = true
          raise Asset::BlockedException
        end
        site.assets_blocked = true
        site.save!
    
        block_res = yield if block_given?
    
        return false unless block_res
        return object.save if object
    
        true
      ensure
        site.update_attribute(:assets_blocked, false) unless dont_unblock
      end
    
      # во всех местах, где с ассетами делалось хоть что-нибудь, копипастился такой кусок:
    
          result =
          begin
            @asset = @site.assets.new
            @asset.process do
              @asset.attached = params[:file]
              @asset.folder_path = params[:path]
            end
          rescue Asset::BlockedException
            render json: { errors: [I18n.t("layout.assets.errors.assets_blocked")] } and return
          end

    По мотивам http://govnokod.ru/13027: транзакции изобретены не нами, давайте сделаем их сами!

    whitequark, 21 Мая 2013

    Комментарии (1)
  8. SQL / Говнокод #13028

    −2

    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
    DELIMITER $$
    
    DROP PROCEDURE IF EXISTS get_breadcrumbs$$
    CREATE PROCEDURE get_breadcrumbs(IN current_id BIGINT(20), show_home TINYINT(1))
    
        READS SQL DATA
    
        BEGIN
    
            DECLARE buff_id BIGINT(20);
            DECLARE buff_parent_id BIGINT(20);
    
            DECLARE done_search TINYINT(1);
            DECLARE current_depth BIGINT(20);
    
            SET done_search = 0;
            SET current_depth = 0;
            SET buff_id = NULL;
    
            CREATE TEMPORARY TABLE breadcrumbs (id BIGINT(20), depth BIGINT(20)) ENGINE = MEMORY;
    
            findloop : WHILE done_search = 0 DO
    
                SELECT id, parent_id INTO buff_id, buff_parent_id FROM documents WHERE id = current_id;
    
                IF buff_id IS NULL THEN
    
                    IF show_home != 0 THEN
    
                        SELECT id, parent_id INTO buff_id, buff_parent_id FROM documents WHERE alias = '/';
                        IF buff_id IS NOT NULL THEN
                            INSERT INTO breadcrumbs (id, depth) VALUES(buff_id, current_depth);
                        END IF;
    
                    END IF;
    
                    LEAVE findloop;
    
                END IF;
    
                INSERT INTO breadcrumbs (id, depth) VALUES(buff_id, current_depth);
    
                SET current_id = buff_parent_id;
                SET current_depth = current_depth + 1;
                SET buff_id = NULL;
    
            END WHILE findloop;
    
            SELECT
    
                d.id,
                d.parent_id,
                d.name,
                d.alias,
                b.depth
    
            FROM breadcrumbs b
            INNER JOIN documents d ON d.id = b.id
            ORDER BY b.depth DESC;
    
        END$$
    
    DELIMITER ;

    Хлебные крошки по id, parent_id.. Психанул...

    deep, 21 Мая 2013

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

    +2

    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
    def set_path
          if name && (!path || path == "/")
            self.path = self.parent.present? ? "#{self.parent.path}/#{name}" : "/#{name}"
          elsif !new_record? && name && path && name_was != name
            parts = path.split("/")
            parts.pop
            self.path = [parts.join("/"), name].join("/")
          elsif !new_record? && name && self.parent_id_changed?
            self.path = self.parent.present? ? "#{self.parent.path}/#{name}" : "/#{name}"
          elsif new_record? && name && path
            self.path = [path, name].join("/")
          end
    
          if path && self.parent.blank?
            parts = path.split("/")
    
            self.name = parts.pop
    
            parent_path = parts.join("/")
            if parent_path.blank? || parent_path == "/"
              self.parent = nil
            else
              possible_parent = site.asset_folders.find_by_path(parent_path)
              self.parent = possible_parent.present? ? possible_parent : self.class.create(path: parent_path, site: site)
            end
          end
          true
         end

    Как не нужно работать с путями в Rails-приложении. Это и еще примерно 500 строк было заменено на 11 строк кода, включая пустые.

    whitequark, 20 Мая 2013

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

    +1

    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
    <script type="text/javascript">
    	// <![CDATA[
    	function update() {
    		document.calculate.totalsales.value = parseFloat(document.calculate.shoessingle.value) * parseFloat(document.calculate.socktoshoe.value) * parseFloat(document.calculate.singlepair.value);
    	}
    	// ]]>
    	
    </script>
    <script type="text/javascript">
    	// <![CDATA[
    	function amargin() {
    		document.calculate.avgmarg.value = parseFloat(document.calculate.singlepair.value) /2;
    	}
    	// ]]>
    	
    </script>
    
    
    <script type="text/javascript">
    	// <![CDATA[
    	function gmargin() {
    		document.calculate.grossmargin.value = parseFloat(document.calculate.totalsales.value) /2;
    	}
    	// ]]>
    	
    </script>

    отакота...

    padonak, 20 Мая 2013

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