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

    +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
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    if (!empty($_POST["favoriteColor"])) {
        switch($_POST["favoriteColor"]) {
            case "Lightred":
                $strBackgroundColor = "#FFDAB9";
                break;
            case "Lightgreen":
                $strBackgroundColor = "Lightgreen";
                break;
            case "Lightblue":
                $strBackgroundColor = "Lightblue";
                break;
            case "Lightgray":
                $strBackgroundColor = "Lightgray";
                break;
            default:
                $strBackgroundColor = "Gray";
                break;
        }
    } else {
        $strBackgroundColor = "Gray";
    }

    jkhne4pijgberg, 29 Апреля 2014

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

    +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
    trait TPerson {
        public $fname;
        public $lname;
        public $mname;
    
        // ...
    }
    
    class BUser extends EMongoDocument {
        public $first_name;
        public $last_name;
        public $middle_name;
    
        // ...
    }
    
    class User extends BUser {
        public $firstname;
        public $lastname;
    
        // ...
    
    }

    Попалось такое наследие на одном рабочем месте. Было два типа юзеров, каждый из них наследовал BUser, в одном из них были firstname и lastname, в другом не были. В монге документы юзера, у которого свои firstname и lastname были вида:
    {
    _id: ObjectId("..."),
    ...
    first_name: '',
    last_name: '',
    middle_name: '',
    fname: '',
    lname: '',
    mname: '',
    firstname: '',
    lastname: ''
    }

    LubarVV, 26 Апреля 2014

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

    +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
    $massiv = array(1,2,3,4,5,6,7,8);
    $her = 0;
    $idRazdelov = array();
    $idRoditela = $idrazdelf;
    foreach($massiv as $chislo){
     
    $db_list = CIBlockSection::GetList(Array(SORT=>"ASC"), $arFilter = Array("IBLOCK_ID"=>"7", "ID"=>$idRoditela), true); 
    while($ar_result = $db_list->GetNext()){
        
        if ($her == 0){
        if ($ar_result["IBLOCK_SECTION_ID"]){
           $idRazdelov[].= $ar_result["ID"];
           $idRoditela = $ar_result["IBLOCK_SECTION_ID"]; 
        }else{
            $idRazdelov[].= $ar_result["ID"];
            $her = 1;
        }
        }
        
        }
    }

    Cotard, 25 Апреля 2014

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

    +153

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    class Application_Model_Product extends Leto_Model
    {
        ...
        public function getParts($cityId)
        {
           ...
            if (@$prods['Сезонный']) {
                $html[] = "<h2>" . _T(__FILE__, 'Сезонные') . "</h2><p>";
                ...
            }
            $html[] = '</p>';

    HTML в модели - это сильно

    DIX315, 25 Апреля 2014

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

    +152

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    /** 
     * Yesterday,
     * All my troubles seemed so far away
     * Now it looks as though they're here to stay
     * Oh, I believe in yesterday
     */
    $yesterday = date('Y-m-d', strtotime($_REQUEST['dateFrom']) - 86400);

    DIX315, 25 Апреля 2014

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

    +153

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    // Заполняем листы целиком одним махом. Что бы про PHP ни говорили, он весьма крут.
    $curr_griddles = array_merge($curr_griddles, array_fill(0, $gqty, array('total_qty' => $piesPerList, $pieId => $piesPerList)));
                                    
       ...
    
    // Выбираем наименее загруженного работника. А вот тут PHP демонстрирует корявость. Правда непонятно, мою или свою...
    asort($workersLoad); reset($workersLoad); $kv = each($workersLoad); $workerId = $kv['key'];

    DIX315, 25 Апреля 2014

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

    +150

    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
    <?php
    	require_once("inc/mysql.php");
    	sleep(3); //Для ajax запроса, потом удалить
    
    	// Проверяем, что к нам идёт Ajax запрос
    	if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
    		$city1 = $_POST['city1'];
    	}else{
    		exit(); // Заканчиваем работу скрипта, если это не ajax запрос
    	}
    
    	if (isset($city1)) {
    		$query = "SELECT id_city, id_region, id_country FROM cities WHERE city_name_ru LIKE '$city1'";
    		$result = mysqli_query($link, $query);// or trigger_error(mysql_error($link)." ".$query);
    		$row = mysqli_fetch_array($result);
    		$country = $row['id_country'];
    		//echo $country;
    		//echo '<br>';
    		$region = $row['id_region'];
    		//echo $region;
    		//echo '<br>';
    		$query1 = "SELECT country_name_ru FROM countries WHERE id_country = '$country'";
    		$result1 = mysqli_query($link, $query1);// or trigger_error(mysql_error($link)." ".$query);
    		$row1 = mysqli_fetch_array($result1);
    		echo '<p class=\'country\'>Страна '.$row1['0'].'</p>';
    		//echo '<br>';
    		$query2 = "SELECT region_name_ru FROM regions WHERE id_region = '$region'";
    		$result2 = mysqli_query($link, $query2);// or trigger_error(mysql_error($link)." ".$query);
    		$row2 = mysqli_fetch_array($result2);
    		echo '<p class=\'reqion\'>Область '.$row2['0'].'</p>';
    	}
    ?>

    Прокомментируйте, пожалуйста, как улучшить этот говнокод.

    eprivalov1, 25 Апреля 2014

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

    +154

    1. 1
    2. 2
    3. 3
    foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
    do_action("ws_plugin__s2member_before_paypal_api_response", get_defined_vars());
    unset /* Unset defined __refs, __v. */($__refs, $__v);

    И опять s2member для wordpress

    antongorodezkiy, 24 Апреля 2014

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

    +158

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    function commerce_auction_dividable($big, $small) {
      $div = $big / $small;
    
      if (!is_numeric(strpos($div, '.')) === TRUE) {
        return TRUE;
      }
      return FALSE;
    }

    https://drupal.org/node/1721568

    Int, 22 Апреля 2014

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

    +153

    1. 1
    print implode('-', array_reverse(explode('-', trim(substr($project->start_date, 0, count($project->start_date) - 9)))));

    Форматирует дату с Y-m-d в d-m-Y. Альтернатива для
    date_format(new DateTime($project->start_date), 'd-m-Y');

    djumpen, 22 Апреля 2014

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