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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    $arResult["ORDER_ID"] = (int)CSaleOrder::DoSaveOrder($arOrderDat, $arFields, 0, $arResult["ERROR"]);
    
    
    if ($arResult["ORDER_ID"] > 0 && empty($arResult["ERROR"]))
    {
    	CSaleBasket::OrderBasket($arResult["ORDER_ID"], CSaleBasket::GetBasketUserID(), SITE_ID, false);
    }

    Нам насрать на то что DoSaveOrder уже внутри себя делает OrderBasket, мы сделаем это еще раз.

    turbosnail, 15 Июля 2016

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    <? $dir = $APPLICATION->GetCurDir();
    $slashCount = substr_count($dir, "/");
    
    //убираем со страницы отдельной новости
    if($slashCount<6){ ?>
    ...
    }?>

    Какая наикрасивейшая проверка на количество слешей в урл.
    Супер решение

    liquor, 14 Июля 2016

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

    −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
    /******** Model **********/
     $model = new CreateArticleForm();
            if ($model->load(Yii::$app->request->post())) {
                if ($model->create()) {
                    Yii::$app->session->setFlash('success', [
                        'type' => 'success',
                        'duration' => 0,
                        'icon' => 'fa fa-users',
                        'message' => 'Success created.',
                        'title' => 'Change password',
                    ]);
                } else {
                    Yii::$app->session->setFlash('danger', [
                        'type' => 'danger',
                        'duration' => 0,
                        'icon' => 'fa fa-users',
                        'message' => 'Error created.',
                        'title' => 'Change password',
                    ]);
                }
            } else {
                return $this->render('create-article',
                    [
                        'language_current' => $language_current,
                        'page' => $page,
                        'model' => $model,
                    ]);
            }
    
    /******** View **********/
     <?php Pjax::begin(['id' => 'my-pjax']); ?>
                                <?php $form = ActiveForm::begin(['id' => 'form-change-pass', 'options' => ['enctype' => 'multipart/form-data', 'data-pjax' => true]]); ?>
                                <?= $form->field($model, 'title')->textInput(['autofocus' => true, 'class' => 'form-control']) ?>
    
                                <label for="usr">Категория</label>
    
                                <div class="bs-docs-example">
                                    <?= Html::activeDropDownList($model, 'id_category',
                                        ArrayHelper::map(\common\models\Category::find()->all(), 'id', 'name'),
                                        ['class' => 'selectpicker dropdownlist form-control',
                                            'data-width' => '100%',
                                            'multiple' => 'true']) ?>
                                </div>
    
                                <?= $form->field($model, 'text', ['inputOptions' => ['class' => 'summernote form-control']])->textarea(['rows' => 6]) ?>
    
                                <?= Html::input('submit', '0', Yii::t('menu', 'form_submit')); ?>
                                <?php ActiveForm::end(); ?>
                                <?php Pjax::end(); ?>

    Первое использование Pjax в Yii2

    qstd, 14 Июля 2016

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

    +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
    ...
        if(empty($text)){
          $response = chr(0xF0) . chr(0x9F) . chr(0x98) . chr(0x95);
        }
        else{
          $textLines = explode("\n", $text);
          
          if(preg_match('/^\d+$/', $textLines[0])){
            $response = $this->doneTaskAction(
              (int) $textLines[0]
            );
          }
          else{
            $response = chr(0xF0) . chr(0x9F) . chr(0x98) . chr(0x95);
          }
        }
    ...
    class dCommand extends doneCommand{
      protected $name = 'd';
      protected $description = 'Псевдоним команды /done';
      protected $usage = '/d <task_id>';
    }

    https://habrahabr.ru/post/305462/
    https://github.com/Bashka/taskbot

    habrophag, 14 Июля 2016

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

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    public function favoriteCount($userId) {
    		$query = $this->db->query("SELECT * FROM ".DB_PREFIX."favorite WHERE customer_id =".$this->db->escape($userId));
    		$rows = $query->rows;
    		return count($rows);
    }

    Opencart.
    Потому что агрегатные функции для слабаков!

    Panda, 13 Июля 2016

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

    +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
    <table>       
            <?php 
            $showShowroomsIds =  array();
            foreach($available_sizes as $sizeName):
            $available  =  false;
            foreach($warehouses as $warehouse) :
                $uuid = $warehouse['uuid'];
                $name = $warehouse['name'];
                $quantity = $size_quantity[$uuid][trim($sizeName)];
                if($quantity >0) {
                    $available  =  true;
                }
            endforeach;
            if(!$available) continue;
            ?>
            <?php
            foreach($warehouses as $warehouse) :
            $uuid = $warehouse['uuid'];
            //echo $uuid."<br>";
            
            if(isset($showrooms[$uuid])) {
                $showShowroomsIds[$uuid] = $uuid;
            }
            
            $name = $warehouse['name'];
            $quantity = $size_quantity[$uuid][trim($sizeName)];
            if($quantity) {
                $eshopAvailable = '';
                if($uuid == $eshopUuid && $quantity > 0) $eshopAvailable = 'eshop_available=\'y\'';
                $quantity  = ModelCommonWarehouse::getFormattedQuantity($quantity,$uuid);
                $qtA  =  "";
            } else {
                continue;
                $qtA  =  "not-available";
                $quantity  =  "нет в наличии";
            }
            ?>
            <tr <?php echo $eshopAvailable?> available='y'>
                <td class="td">
                    <?php if(isset($showrooms[$uuid])):?><a href="#" class="showroom-info"  uuid="<?php echo $uuid;?>" icId="uuid" rel="nofollow"><?php endif;?>
                    <?php echo $name?>
                    <!--<?php echo $uuid;?>-->
                    <?php if(isset($showrooms[$uuid])):?></a><?php endif;?>
                </td>
                <td class="qt <?php echo $qtA;?>"   ><?php echo $quantity;?></td>
            </tr>
            <?php endforeach;?>
            <tr>
                <td style="height: 10px;"></td>
            </tr>
            <?php endforeach;?>
        </table>

    Opencart. Прямо во вьюхе ровным слоем размазаны бизнес-логика и js.
    Что самое интересное, оборот магазина составляет 7 млн. руб (о__О)

    Panda, 13 Июля 2016

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

    +3

    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
    $t0=mktime(
                preg_replace("/^....\-..\-..\ (..):..:..$/","$1",$task['end_date']),
                preg_replace("/^....\-..\-..\ ..:(..):..$/","$1",$task['end_date']),
                preg_replace("/^....\-..\-..\ ..:..:(..)$/","$1",$task['end_date']),
                preg_replace("/^....\-(..)\-..\ ..:..:..$/","$1",$task['end_date']),
                preg_replace("/^....\-..\-(..)\ ..:..:..$/","$1",$task['end_date']),
                preg_replace("/^(....)\-..\-..\ ..:..:..$/","$1",$task['end_date'])
            );
    
            $t1=mktime(
                preg_replace("/^....\-..\-..\ (..):..:..$/","$1",$task['real_end_date']),
                preg_replace("/^....\-..\-..\ ..:(..):..$/","$1",$task['real_end_date']),
                preg_replace("/^....\-..\-..\ ..:..:(..)$/","$1",$task['real_end_date']),
                preg_replace("/^....\-(..)\-..\ ..:..:..$/","$1",$task['real_end_date']),
                preg_replace("/^....\-..\-(..)\ ..:..:..$/","$1",$task['real_end_date']),
                preg_replace("/^(....)\-..\-..\ ..:..:..$/","$1",$task['real_end_date'])
            );
    
            for($i=$t0;$i<=$t1;$i=$i+(60*60))
            {

    Вот такой разбор дат по крупицам обнаружился...

    Lblss, 12 Июля 2016

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

    +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
    function implode() {
        $str = '';
        if(func_num_args()==1) {
            $array  = (is_array(func_get_arg(0))) ? func_get_arg(0) : false;
            $symbol = '';
        } elseif(func_num_args()==2) {
            $array = (is_array(func_get_arg(0))) ? func_get_arg(0): func_get_arg(1);
            $symbol = (!is_array(func_get_arg(0))) ? func_get_arg(0) : func_get_arg(1);
        } else {
            return false;
        }
        if($array===false) {
            return false;
        } else {
            foreach($array as $k=>$v) {
                if(is_array($v)) {
                    return false;
                } else {
                    $str = $str.$symbol.$v;
                }
            }
        return $str;
        }
    }

    Свой аналог функции implode. И такое бывает

    McLotos, 11 Июля 2016

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

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    /**
      * @param int $day
      * @return bool
      */
    protected function isWorkingDay($day)
    {
        return $day % 8 <= 5;
    }

    Cпособ определить, является ли указанный день (передается номер дня в неделе от 1 до 7) рабочим. Чем автора не устроил return $day <= 5 - непонятно..

    feversocial, 11 Июля 2016

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

    0

    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
    do {
    	if ( array_key_exists( 'smd', $_GET ) ) {
    		$this->response[]	= $this->getServiceMap();
    		$this->hasCalls		= TRUE;
    		break;
    	}
    
    	$error = $this->getRequest();
    	if ( $error ) {
    		$this->response[] = $this->getError( $error );
    		$this->hasCalls   = TRUE;
    		break;
    	}
    
    	foreach( $this->calls as $call ) {
    		$error = $this->validateCall( $call );
    		if ( $error ) {
    			$this->response[] = $this->getError( $error[0], $error[1], $error[2] );
    			$this->hasCalls   = TRUE;
    		} else {
    			$result = $this->processCall( $call );
    			if ( $result ) {
    				$this->response[] = $result;
    				$this->hasCalls   = TRUE;
    			}
    		}
    	}
    } while(FALSE);

    Угадайте, зачем?

    Flaker, 07 Июля 2016

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