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

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    echo '
    <font class="phonetop">
      +7 (495) 
      <font style="font-size:28px">
        99-888-77
      </font>
    </font>
    ';

    ну как так можно?
    использовать в теге font class, и в то же время, умудриться непонятно для чего изменять размер шрифта в теге font через style?
    даже если нравится тег font, так у него есть атрибут size=""
    ...

    govnokoder2, 22 Мая 2014

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

    +154

    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
    function box_navigation($gc, $num, $id, $function, $act){
    	global $tpl, $page;
    	$gcount = $gc;
    	$cnt = $num;
    	$items_count = $cnt;
    	$items_per_page = $gcount;
    	$page_refers_per_page = 5;
    	$pages = '';		
    	$pages_count = ( ( $items_count % $items_per_page != 0 ) ) ? floor( $items_count / $items_per_page ) + 1 : floor( $items_count / $items_per_page );
    	$start_page = ( $page - $page_refers_per_page <= 0  ) ? 1 : $page - $page_refers_per_page + 1;
    	$page_refers_per_page_count = ( ( $page - $page_refers_per_page < 0 ) ? $page : $page_refers_per_page ) + ( ( $page + $page_refers_per_page > $pages_count ) ? ( $pages_count - $page )  :  $page_refers_per_page - 1 );
    	
    	if(!$act)
    		$act = "''";
    	else
    		$act = "'{$act}'";
    			
    	if($page > 1)
    		$pages .= '<a href="" onClick="'.$function.'('.$id.', '.($page-1).', '.$act.'); return false">«</a>';
    	else
    		$pages .= '';
    				
    	if ( $start_page > 1 ) {
    		$pages .= '<a href="" onClick="'.$function.'('.$id.', 1, '.$act.'); return false">1</a>';
    		$pages .= '<a href="" onClick="'.$function.'('.$id.', '.($start_page-1).', '.$act.'); return false">...</a>';
    			
    	}
    					
    	for ( $index = -1; ++$index <= $page_refers_per_page_count-1; ) {
    		if ( $index + $start_page == $page )
    			$pages .= '<span>' . ( $start_page + $index ) . '</span>';
    		else 
    			$pages .= '<a href="" onClick="'.$function.'('.$id.', '.($start_page+$index).', '.$act.'); return false">'.($start_page+$index).'</a>';
    	} 
    			
    	if ( $page + $page_refers_per_page <= $pages_count ) { 
    		$pages .= '<a href="" onClick="'.$function.'('.$id.', '.($start_page + $page_refers_per_page_count).', '.$act.'); return false">...</a>';
    		$pages .= '<a href="" onClick="'.$function.'('.$id.', '.$pages_count.', '.$act.'); return false">'.$pages_count.'</a>';	
    	} 
    				
    	$resif = $cnt/$gcount;
    	if(ceil($resif) == $page)
    		$pages .= '';
    	else
    		$pages .= '<a href="/" onClick="'.$function.'('.$id.', '.($page+1).', '.$act.'); return false">»</a>';
    
    	if ( $pages_count <= 1 )
    		$pages = '';
    
    	$tpl_2 = new mozg_template();
    	$tpl_2->dir = TEMPLATE_DIR;
    	$tpl_2->load_template('nav.tpl');
    	$tpl_2->set('{pages}', $pages);
    	$tpl_2->compile('content');
    	$tpl_2->clear();
    	$tpl->result['content'] .= $tpl_2->result['content'];
    }

    дали проект чтобы разобрался)

    progsmile, 21 Мая 2014

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

    +162

    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
    $sql_color =
    "IF(PsaleCharge.payed = " . TSALE_CONTRACTOR_INIT . ", 'red', IF(PsaleCharge.payed = " . TSALE_CONTRACTOR_PARTIAL . ", 'silver', 'green'))";
    
    $sql_title =
    "IF(PsaleCharge.payed = " . TSALE_CONTRACTOR_INIT . ", 'Не оплачено', IF(PsaleCharge.payed = " . TSALE_CONTRACTOR_PARTIAL . ", 'Оплачено частично', 'Оплачено'))";
    
    if($allow_pay) {
    	$sql_allow_pay = "";
    } else {
    	$sql_allow_pay = "OR TRUE";
    }
    
    $sql_contractor_name =
    "GROUP_CONCAT(" .
    "'<tr>\r\n<td>', " .
    "IF(PsaleCharge.tcontractor_id IS NULL, " .
    "IF(PsaleCharge.recipient IS NULL OR PsaleCharge.recipient = '', '', CONCAT(PsaleCharge.recipient, '&nbsp;')), " .
    "CONCAT('<a href=\"../tcontractors/view?id=', Tcontractor.id, '\" target=\"_blank\">', HTMLSPECIALCHARS(Tcontractor.company), '</a>&nbsp;')" .
    "), " .
    "'</td>\r\n<td style=\'text-align:right;\'>', " .
    
    "IF(Psale.status = " . PSALE_STATUS_CLOSE . " $sql_allow_pay, CONCAT('<span style=\'color:', $sql_color, ';\' title=\'', $sql_title, '\'>', PsaleCharge.amount, '</span>'), " .
    
    "CONCAT(" .
    "'<a style=\'color:', $sql_color, ';\' title=\'', $sql_title, '\' href=\'#\' onclick=\'onPsaleChargeEdit(', PsaleCharge.id, ', ', PsaleCharge.psale_id,  ', false); return false;\'>', " .
    "PsaleCharge.amount, " .
    "'</a>'" .
    ")), " .
    
    "'</td>\r\n</tr>\r\n'" .
    "SEPARATOR ' ')";
    
    $sql_contractors =
    "SELECT $sql_contractor_name " .
    "FROM psale_charges PsaleCharge " .
    "LEFT JOIN tcontractors Tcontractor ON PsaleCharge.tcontractor_id = Tcontractor.id " .
    "WHERE PsaleCharge.psale_id = Psale.id ";

    Формируем разметку в SQL-запросе...

    DirtyG, 21 Мая 2014

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

    +150

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    Не так давно одно местное парнокопытное (и гомосексуальное также) существо с пеной у рта нахваливало 
    среду разработки php devel studio. Ради интереса скачал  - что ж?
    Обычный, ничем не примечательный интерпретатор (на дельфях кстати, писаный), ничем не лучше автоита. 
    Скомпилированный бинарник имеет фантастические размеры - около ~3 мб,  при выполнении требует runtime php5ts.dll.
    Понмится мне, Конь с присущим ему пафосом предлагал кодить на ней чуть ли не драйверы.
    
    Так в чем же фишка, товарищи, возможно я что-то проглядел? По мне - полнейшая лажа.

    Конь php-бляди соснули.

    brutushafens, 19 Мая 2014

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

    +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
    $this->_html .= '<script type="text/javascript">id_language = ' . intval($this->defaultLanguage) . ';</script>';
    		if ($ObjAdvancedTopMenuClass)
    			$haveDepend = AdvancedTopMenuClass::menuHaveDepend($ObjAdvancedTopMenuClass->id);
    		$this->_html .= '<form action="' . $this->base_config_url . '" method="post" id="menuform_' . $this->name . '" name="menuform_' . $this->name . '" method="post" enctype="multipart/form-data" class="width3">
        <div id="blocMenuForm">
            ' . ($ObjAdvancedTopMenuClass ? '<input type="hidden" name="id_menu" value="' . intval($ObjAdvancedTopMenuClass->id) . '" /><br /><a href="' . $this->base_config_url . '"><img src="../img/admin/arrow2.gif" />' . $this->l('Back') . '</a><br class="clear" /><br />' : '');
    		$this->_html .= '<label>' . $this->l('Tab type') . '</label>
           <div class="margin-form"><select name="type" id="type_menu">
              <option value="">' . $this->l('Choose') . '</option>
              <option value="1" ' . ($ObjAdvancedTopMenuClass && $ObjAdvancedTopMenuClass->type == 1 ? 'selected="selected"' : '') . '>' . $this->l('CMS') . '</option>
              <option value="2" ' . ($ObjAdvancedTopMenuClass && $ObjAdvancedTopMenuClass->type == 2 ? 'selected="selected"' : '') . '>' . $this->l('Link') . '</option>
              <option value="3" ' . ($ObjAdvancedTopMenuClass && $ObjAdvancedTopMenuClass->type == 3 ? 'selected="selected"' : '') . '>' . $this->l('Category') . '</option>
               <option value="4" ' . ($ObjAdvancedTopMenuClass && $ObjAdvancedTopMenuClass->type == 4 ? 'selected="selected"' : '') . '>' . $this->l('Manufacturer') . '</option>
              <option value="5" ' . ($ObjAdvancedTopMenuClass && $ObjAdvancedTopMenuClass->type == 5 ? 'selected="selected"' : '') . '>' . $this->l('Supplier') . '</option>
              <option value="6" ' . ($ObjAdvancedTopMenuClass && $ObjAdvancedTopMenuClass->type == 6 ? 'selected="selected"' : '') . '>' . $this->l('Search') . '</option>
              <option value="7" ' . ($ObjAdvancedTopMenuClass && $ObjAdvancedTopMenuClass->type == 7 ? 'selected="selected"' : '') . '>' . $this->l('Only image or icon') . '</option>
           </select></div>';
    		$this->_html .= '<script type="text/javascript">$("#type_menu").change(function() {showMenuType($(this),"menu");});</script>';
    		$this->_html .= '<label>' . $this->l('Menu link not clickable') . '</label>
              <div class="margin-form">
              <input type="checkbox" name="clickable" id="menu_clickable" value="1" ' . ($ObjAdvancedTopMenuClass && $ObjAdvancedTopMenuClass->link [$this->defaultLanguage] == '#' ? ' checked=checked' : '') . '  />
              <small>' . $this->l('Add a # in the link field. Do not remove.') . '</small>
              </div>';
    		$this->_html .= '<script type="text/javascript">$("#menu_clickable").click(function() {setUnclickable($(this));});</script>';
    		if ($ObjAdvancedTopMenuClass && in_array($ObjAdvancedTopMenuClass->type, $this->rebuildable_type)) {
    			$this->_html .= '<label>' . $this->l('Rebuild tree') . '</label>
              <div class="margin-form"><label class="t" for="rebuild_on"><img src="../img/admin/enabled.gif" alt="' . $this->l('Yes') . '" title="' . $this->l('Yes') . '" /></label>
                <input type="radio" name="rebuild" id="rebuild_on" value="1" />
                <label class="t" for="rebuild_on"> ' . $this->l('Yes') . '</label>
                <label class="t" for="rebuild_off"><img src="../img/admin/disabled.gif" alt="' . $this->l('No') . '" title="' . $this->l('No') . '" style="margin-left: 10px;" /></label>
                <input type="radio" name="rebuild" id="rebuild_off" value="0" checked=checked />
                <label class="t" for="rebuild_off"> ' . $this->l('No') . '</label><br />' . $this->l('Caution, this may change the appearance of your menu !') . '</div>';
    		}

    А Smarty стоит рядышком и тихо плачет вместе с программистом.
    Модуль для PrestaShop стоимостью 50 евро.

    in8finity, 19 Мая 2014

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

    +166

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    //делаем отступ
    echo ' 
    <table border="0" width="100%" cellspacing="0" cellpadding="10">
           <tr>
            <td align="center">&nbsp;<br>&nbsp;</td>
           </tr>
          </table>
    ';

    таким образом делаются отступы ... facepalm

    govnokoder2, 19 Мая 2014

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

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    $hostInfo = Yii::app()->getRequest()->getHostInfo();
        	$hostInfo = str_replace('http://', "", $hostInfo);
        	$hostInfo = str_replace('www', "", $hostInfo);
        	$hostInfo = str_replace('sitename', "", $hostInfo);
        	$hostInfo = str_replace('.', "", $hostInfo);
        	$hostInfo = preg_replace('/ru|local/', '', $hostInfo);

    Человек до меня получал поддомен третьего уровня

    TRANE73, 19 Мая 2014

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

    +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
    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
    public function catalog_add() {
            
            if (Route::is_post()) {
                $this->L->view = false;
                $errors = array();
    
                $Company = new Model_Companies();
                $Company->fillFromArray($_POST['companies']);
    
                if (!$Company['cats_id']) {
                    $errors[] = 'Не выбрана категория';
                }
                if (!preg_match('/^\d{2}\.\d{2}\.\d{4}$/', $Company['startdate'])) {
                    $errors[] = 'Неверный формат начала периода размещения';
                }
                if (!preg_match('/^\d{2}\.\d{2}\.\d{4}$/', $Company['enddate'])) {
                    $errors[] = 'Неверный формат конца периода размещения';
                }
                if (!preg_match('/^\d{2}\.\d{2}\.\d{4}$/', $Company['position_start'])) {
                    $errors[] = 'Неверный формат начала действия приоритетной позиции';
                }
                if (!preg_match('/^\d{2}\.\d{2}\.\d{4}$/', $Company['position_end'])) {
                    $errors[] = 'Неверный формат конца действия приоритетной позиции';
                }
    
                //проверка на существования графика работы
                $noSchedule = true;
                foreach ($_POST['schedule'] as $key => $value) {
                    if (isset($value['work'])) {
                        $noSchedule = false;
                        break;
                    }
                }
    
                if ($noSchedule) {
                    $errors[] = 'Не указано ни одного рабочего дня';
                } else {
                    //проверка рабочего времени
                    foreach ($_POST['schedule'] as $key => $value) {
                        if (isset($value['work'])) {
                            if (!preg_match('/^(2[0-3]|[01][0-9]):[0-5][0-9]$/', $value['start']) || !preg_match('/^(2[0-3]|[01][0-9]):[0-5][0-9]$/', $value['end'])) {
                                $errors[] = 'Неверный формат времени работы в ' . strtolower(Model_Schedule::$days[$key]);
                            } else {
                                //проверка грамотности, конец больше начала
                                if (strtotime($value['start']) > strtotime($value['end'])) {
                                    $errors[] = 'Конец работы должен быть позже времени начала в ' . strtolower(Model_Schedule::$days[$key]);
                                } else {
                                    //провека обеда
                                    if (isset($value['lunch'])) {
                                        if (!preg_match('/^(2[0-3]|[01][0-9]):[0-5][0-9]$/', $value['lunch_start']) || !preg_match('/^(2[0-3]|[01][0-9]):[0-5][0-9]$/', $value['lunch_end'])) {
                                            $errors[] = 'Неверный формат времени обеда в ' . strtolower(Model_Schedule::$days[$key]);
                                        } else {
                                            //проверка грамотности границ обеда
                                            if (strtotime($value['lunch_start']) > strtotime($value['lunch_end'])) {
                                                $errors[] = 'Конец обеденного перерыва должен быть позже времени начала в ' . strtolower(Model_Schedule::$days[$key]);
                                            } else {
                                                //проверка что обед вмещается в рабочее время
                                                if ($value['lunch_start'] < $value['start'] || $value['lunch_end'] > $value['end']) {
                                                    $errors[] = 'Обед выходит за рамки указанного рабочего времени в ' . strtolower(Model_Schedule::$days[$key]);
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
    
                //todo: сделать проверку на занятость приоритетной позиции в выбраной категории в указанный период
    
                if (!count($errors)) {
                    //если нет ошибок то пишем
                    $Company->save();
    
                    foreach ($_POST['schedule'] as $key => $value) {
                        if (isset($value['work'])) {
                            $Schedule = new Model_Schedule();
                            $Schedule->fillFromArray($value);
                            $Schedule['day'] = $key;
                            $Schedule['companies_id'] = $Company['id'];
                            $Schedule->save();
                        }
                    }
                }
    
                echo json_encode($errors);
            }
        }

    проверки, такие проверки

    Serious_Andy, 17 Мая 2014

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

    +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
    foreach ($line as $cell) { 
        if ($first) {
    	echo "<td id='csv_head' class='td_csv_head" . $i . "'>" 
    	. htmlspecialchars($cell) 
    	. '</br><select class="td_csv_modules' . $i . '" onchange="get_submodules($(\'.td_csv_modules' . $i . '\').val(), ' . $i . ')">' 
    	. $blank_select // </select>
    	. '</br><select class="td_csv_fields' . $i . '"><option value=""></option>'
    	. "</td>";
        } else {
    	echo "<td class='td_csv'>" . htmlspecialchars($cell) . "</td>";
        };
        $i++;
    }

    Нашел в коде коллеги. Кода было много, выкладываю самый вкусный. Момент с id и class у select-ов не опечатка. Подобное всречается абсолютно везде.

    ivanstroilov, 16 Мая 2014

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

    +153

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    <?php foreach ($category_1['children'] as $category_2) { ?>
            <?php if ($category_2['category_id'] == $category_id) { ?>
            <option value="<?php echo $category_2['category_id']; ?>" selected="selected">      <?php echo $category_2['name']; ?></option>
            <?php } else { ?>
            <option value="<?php echo $category_2['category_id']; ?>">      <?php echo $category_2['name']; ?></option>
            <?php } ?>
            <?php foreach ($category_2['children'] as $category_3) { ?>
            <?php if ($category_3['category_id'] == $category_id) { ?>
            <option value="<?php echo $category_3['category_id']; ?>" selected="selected">            <?php echo $category_3['name']; ?></option>
            <?php } else { ?>
            <option value="<?php echo $category_3['category_id']; ?>">            <?php echo $category_3['name']; ?></option>
            <?php } ?>

    Код вида поиска из известной модификации CMS Opencart - Maxystore.

    bestaimer, 15 Мая 2014

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