Commit 143979c5d8451dd44f3af9e4855fc0c968841e1e

Authored by Yarik
1 parent db659e19

test

common/models/BlogSearch.php
... ... @@ -47,17 +47,19 @@
47 47 ],
48 48 [
49 49 [
50   - 'date_add_from',
  50 + 'date_add_to',
51 51 ],
52   - 'default',
53   - 'value' => date('Y-m-d', 0),
  52 + 'compare',
  53 + 'compareAttribute' => 'date_add_from',
  54 + 'operator' => '>=',
54 55 ],
55 56 [
56 57 [
57   - 'date_add_to',
  58 + 'date_add_from',
58 59 ],
59   - 'default',
60   - 'value' => date('Y-m-d'),
  60 + 'compare',
  61 + 'compareValue' => date('Y-m-d'),
  62 + 'operator' => '<=',
61 63 ],
62 64 ];
63 65 }
... ... @@ -101,17 +103,30 @@
101 103 // grid filtering conditions
102 104 $query->andFilterWhere([
103 105 'blog_id' => $this->blog_id,
104   - 'date_add' => $this->date_add,
105 106 'user_add_id' => $this->user_add_id,
106 107 'view_count' => $this->view_count,
107 108 ]);
108 109  
109   - $query->andFilterWhere([
110   - 'between',
111   - 'date_add',
112   - $this->date_add_from,
113   - (new \DateTime($this->date_add_to))->modify('+1 day')->format('Y-m-d')
114   - ]);
  110 + if(!empty($this->date_add_from) && !empty($this->date_add_to)) {
  111 + $query->andWhere([
  112 + 'between',
  113 + 'date_add',
  114 + $this->date_add_from,
  115 + (new \DateTime($this->date_add_to))->modify('+1 day')->format('Y-m-d'),
  116 + ]);
  117 + } elseif(!empty($this->date_add_from)) {
  118 + $query->andWhere([
  119 + '>=',
  120 + 'date_add',
  121 + $this->date_add_from,
  122 + ]);
  123 + } elseif(!empty($this->date_add_to)) {
  124 + $query->andWhere([
  125 + '<=',
  126 + 'date_add',
  127 + (new \DateTime($this->date_add_to))->modify('+1 day')->format('Y-m-d'),
  128 + ]);
  129 + }
115 130  
116 131 $query->andFilterWhere([
117 132 'like',
... ...
frontend/controllers/SiteController.php
... ... @@ -272,6 +272,10 @@ class SiteController extends Controller
272 272  
273 273 $user_info->load(Yii::$app->request->post(),'SignupForm');
274 274  
  275 + if(empty($user_info->city) && !empty(\Yii::$app->request->post()['SignupForm']['city_custom'])) {
  276 + $user_info->city = \Yii::$app->request->post()['SignupForm']['city_custom'];
  277 + }
  278 +
275 279 $user_info->user_id = $user->id;
276 280  
277 281 $user_info->save();
... ...
frontend/models/SignupForm.php
... ... @@ -23,7 +23,7 @@ class SignupForm extends Model
23 23 public $is_freelancer;
24 24 public $city;
25 25 public $name;
26   -
  26 + public $city_custom;
27 27  
28 28  
29 29 const SCENARIO_USER = 'user';
... ... @@ -40,7 +40,7 @@ class SignupForm extends Model
40 40 ['username', 'unique', 'targetClass' => '\common\models\User', 'message' => 'This username has already been taken.'],
41 41 ['username', 'string', 'min' => 2, 'max' => 255],
42 42  
43   - ['city', 'string', 'min' => 2, 'max' => 255],
  43 + [['city', 'city_custom'], 'string', 'min' => 2, 'max' => 255],
44 44  
45 45 ['email', 'filter', 'filter' => 'trim'],
46 46 ['email', 'required'],
... ... @@ -95,7 +95,6 @@ class SignupForm extends Model
95 95 $user->generateAuthKey();
96 96  
97 97 if ($user->save()) {
98   -// $user->link('userInfo', new UserInfo(['city' => $this->city]));
99 98 return $user;
100 99 }
101 100 }
... ...
frontend/views/accounts/blog.php
... ... @@ -59,7 +59,9 @@
59 59 'changeMonth' => true,
60 60 ],
61 61 ])
62   - ."</span>
  62 + ."</span>"
  63 + .(($searchModel->hasErrors('date_add_from'))?'Дата начала не может быть больше сегодняшнего дня':'')
  64 + .(($searchModel->hasErrors('date_add_to'))?'Дата окончания должна быть больше даты начала':'')."
63 65 </div>",
64 66 'format' => 'html',
65 67 ],
... ...
frontend/views/site/registration.php
1 1 <?php
2   -/**
3   - * @var $user common\models\User
4   - * @var $user_info common\models\UserInfo
5   - */
  2 + /**
  3 + * @var $user common\models\User
  4 + * @var $user_info common\models\UserInfo
  5 + */
6 6 use yii\captcha\Captcha;
7   -use yii\web\View;
8   -use yii\widgets\ActiveForm;
  7 + use yii\web\View;
  8 + use yii\widgets\ActiveForm;
9 9 use kartik\select2\Select2;
10 10 use yii\web\JsExpression;
11 11  
... ... @@ -18,128 +18,136 @@ use yii\widgets\ActiveForm;
18 18 <div class="registration-form style">
19 19 <?php $form = ActiveForm::begin(); ?>
20 20  
21   - <div class="input-blocks-wrapper">
22   - <div class="input-blocks">
23   - <?= $form->field($model, 'username')->textInput(['class'=>'custom-input-2'])?>
24   - </div>
25   - <div class="input-blocks-help-wr">
26   - <div class="input-blocks-help">Логин должен содержать не менее 3-х символов, начинаться с английской буквы и заканчиваться буквой или цифрой. Допускаются английские буквы, цифры и знаки 'тире', 'подчеркивание', 'точка'</div>
27   - </div>
  21 + <div class="input-blocks-wrapper">
  22 + <div class="input-blocks">
  23 + <?= $form->field($model, 'username')
  24 + ->textInput([ 'class' => 'custom-input-2' ]) ?>
  25 + </div>
  26 + <div class="input-blocks-help-wr">
  27 + <div class="input-blocks-help">Логин должен содержать не менее 3-х символов, начинаться с английской буквы и заканчиваться буквой или цифрой. Допускаются английские буквы, цифры и знаки 'тире', 'подчеркивание', 'точка'</div>
28 28 </div>
  29 + </div>
29 30  
30   - <div class="input-blocks-wrapper">
31   - <div class="input-blocks">
  31 + <div class="input-blocks-wrapper">
  32 + <div class="input-blocks">
32 33  
33   - <?= $form->field($model, 'password')->passwordInput(['class'=>'custom-input-2'])?>
  34 + <?= $form->field($model, 'password')
  35 + ->passwordInput([ 'class' => 'custom-input-2' ]) ?>
34 36  
35   - </div>
36   - <div class="input-blocks-help-wr">
37   - <div class="input-blocks-help">Пароль должен содержать не менее 6-ти символов.</div>
38   - </div>
39 37 </div>
  38 + <div class="input-blocks-help-wr">
  39 + <div class="input-blocks-help">Пароль должен содержать не менее 6-ти символов.</div>
  40 + </div>
  41 + </div>
40 42  
41   - <div class="input-blocks-wrapper">
42   - <div class="input-blocks">
43   - <?= $form->field($model, 'email')->textInput(['class'=>'custom-input-2'])?>
44   - </div>
45   - <div class="input-blocks-help-wr">
46   - <div class="input-blocks-help">На этот адрес электронной почты будет отправлено уведомление о регистрации.</div>
47   - </div>
  43 + <div class="input-blocks-wrapper">
  44 + <div class="input-blocks">
  45 + <?= $form->field($model, 'email')
  46 + ->textInput([ 'class' => 'custom-input-2' ]) ?>
  47 + </div>
  48 + <div class="input-blocks-help-wr">
  49 + <div class="input-blocks-help">На этот адрес электронной почты будет отправлено уведомление о регистрации.</div>
48 50 </div>
  51 + </div>
49 52  
50   - <div class="who-you-are style">
51   - <div class="who-you-are-title style">Кто Вы</div>
52   - <div class="who-you-are-form-wr style">
53   - <div class="who-you-are-form">
  53 + <div class="who-you-are style">
  54 + <div class="who-you-are-title style">Кто Вы</div>
  55 + <div class="who-you-are-form-wr style">
  56 + <div class="who-you-are-form">
54 57  
55   - <div class="register-val-company">
56   - <?php
  58 + <div class="register-val-company">
  59 + <?php
57 60 $model->type = '1';
58   - echo $form->field ($model, 'type',['options'=> ['class'=>'check-radio-wr']])
59   - ->label (false)
60   - ->radioList (
61   - [1 => 'Частное лицо', 2 => 'Компания'],
62   - [
63   - 'item' => function($index, $label, $name, $checked, $value) {
64   - $return = '<div class="custom-form-buttons">';
65   - $return .= '<input class="custom-radio" id="custom-radio-'.$value.'" '.($checked ? "checked" : "" ).' type="radio" name="' . $name . '" value="' . $value . '" >';
66   - $return .= '<label for="custom-radio-'.$value.'" ><span></span>' . $label .'</label>';
67   - $return .= '</div>';
68   - return $return;
69   - }
70   - ]
71   - );
72   - ?>
73   - </div>
  61 + echo $form->field($model, 'type', [ 'options' => [ 'class' => 'check-radio-wr' ] ])
  62 + ->label(false)
  63 + ->radioList([
  64 + 1 => 'Частное лицо',
  65 + 2 => 'Компания',
  66 + ], [
  67 + 'item' => function($index, $label, $name, $checked, $value) {
  68 + $return = '<div class="custom-form-buttons">';
  69 + $return .= '<input class="custom-radio" id="custom-radio-' . $value . '" ' . ( $checked ? "checked" : "" ) . ' type="radio" name="' . $name . '" value="' . $value . '" >';
  70 + $return .= '<label for="custom-radio-' . $value . '" ><span></span>' . $label . '</label>';
  71 + $return .= '</div>';
  72 + return $return;
  73 + },
  74 + ]);
  75 + ?>
  76 + </div>
74 77  
75   - <div class="check-radio-wr">
76   - <?= $form->field($model, 'is_freelancer', [ 'template' => "{input}\n{label}\n{error}" , 'options'=>['class'=>'custom-form-buttons'] ])
77   - ->label('<span></span>Я - Фрилансер')
78   - ->checkbox([
79   - 'class' => 'custom-check',
80   - ], false); ?>
81   -
82   - <?= $form->field($model, 'is_customer', [ 'template' => "{input}\n{label}\n{error}", 'options'=>['class'=>'custom-form-buttons'] ])
83   - ->label('<span></span>Я - Заказчик')
84   - ->checkbox([
85   - 'class' => 'custom-check',
86   - ], false); ?>
87   - </div>
  78 + <div class="check-radio-wr">
  79 + <?= $form->field($model, 'is_freelancer', [
  80 + 'template' => "{input}\n{label}\n{error}",
  81 + 'options' => [ 'class' => 'custom-form-buttons' ],
  82 + ])
  83 + ->label('<span></span>Я - Фрилансер')
  84 + ->checkbox([
  85 + 'class' => 'custom-check',
  86 + ], false); ?>
  87 +
  88 + <?= $form->field($model, 'is_customer', [
  89 + 'template' => "{input}\n{label}\n{error}",
  90 + 'options' => [ 'class' => 'custom-form-buttons' ],
  91 + ])
  92 + ->label('<span></span>Я - Заказчик')
  93 + ->checkbox([
  94 + 'class' => 'custom-check',
  95 + ], false); ?>
  96 + </div>
88 97  
89   - <div id="register-company-block-target"></div>
90   - <div class="input-blocks-wrapper register-company-block">
91   - <div class="input-blocks">
92   - <?= $form->field($model, 'name')->textInput(['class'=>'custom-input-2'])?>
93   - </div>
  98 + <div id="register-company-block-target"></div>
  99 + <div class="input-blocks-wrapper register-company-block">
  100 + <div class="input-blocks">
  101 + <?= $form->field($model, 'name')
  102 + ->textInput([ 'class' => 'custom-input-2' ]) ?>
94 103 </div>
  104 + </div>
95 105  
96   - <div class="input-blocks-wrapper">
97   - <div class="input-blocks">
98   - <?= $form->field($model, 'firstname')->textInput(['class'=>'custom-input-2'])?>
99   - </div>
  106 + <div class="input-blocks-wrapper">
  107 + <div class="input-blocks">
  108 + <?= $form->field($model, 'firstname')
  109 + ->textInput([ 'class' => 'custom-input-2' ]) ?>
100 110 </div>
101   - <div class="input-blocks-wrapper">
102   - <div class="input-blocks">
103   - <?= $form->field($model, 'lastname')->textInput(['class'=>'custom-input-2'])?>
104   - </div>
  111 + </div>
  112 + <div class="input-blocks-wrapper">
  113 + <div class="input-blocks">
  114 + <?= $form->field($model, 'lastname')
  115 + ->textInput([ 'class' => 'custom-input-2' ]) ?>
105 116 </div>
106   - <div class="input-blocks-wrapper">
107   - <div class="input-blocks">
108   - <?=
109   - $form->field($model, 'city')->widget(Select2::classname(), [
110   - 'options' => ['placeholder' => 'Выбор города ...'],
111   - 'pluginOptions' => [
112   - 'allowClear' => true,
113   - 'minimumInputLength' => 3,
114   - 'ajax' => [
115   - 'url' => \yii\helpers\Url::to(['site/city']),
116   - 'dataType' => 'json',
117   - 'data' => new JsExpression('function(params) { return {q:params.term}; }')
118   - ],
119   - 'escapeMarkup' => new JsExpression('function (markup) { return markup; }'),
120   - 'templateResult' => new JsExpression('function(city) { return city.text; }'),
121   - 'templateSelection' => new JsExpression('function (city) { return city.text; }'),
122   - ],
123   - ]);
124   - ?>
125   - </div>
  117 + </div>
  118 + <div class="input-blocks-wrapper">
  119 + <div class="input-blocks">
  120 + <?= $form->field($model, 'city')
  121 + ->widget(Select2::classname(), [
  122 + 'options' => [ 'placeholder' => 'Выбор города ...' ],
  123 + 'pluginOptions' => [
  124 + 'allowClear' => true,
  125 + 'minimumInputLength' => 3,
  126 + 'ajax' => [
  127 + 'url' => \yii\helpers\Url::to([ 'site/city' ]),
  128 + 'dataType' => 'json',
  129 + 'data' => new JsExpression('function(params) { return {q:params.term}; }'),
  130 + ],
  131 + 'escapeMarkup' => new JsExpression('function (markup) { return markup; }'),
  132 + 'templateResult' => new JsExpression('function(city) { return city.text; }'),
  133 + 'templateSelection' => new JsExpression('function (city) { return city.text; }'),
  134 + ],
  135 + ]); ?>
126 136 </div>
127   -
128   -
129   -
  137 + </div>
130 138  
131 139  
132   - <div class="input-blocks-wrapper city-two">
133   - <div class="input-blocks">
134   - <label for="input-txt-7">Город не в списке</label>
135   - <input class="custom-input-2" id="input-txt-7" type="text">
136   - </div>
137   - <div class="form-help-two">Если вашего города нет в списке, введите его. </div>
138   - </div>
139   - <div class="input-blocks-wrapper captcha-wr">
140   - <?= $form->field($model, 'verifyCode')->widget(Captcha::className(), [
141   - 'options' => ['class' => 'custom-input-2'],
142   - 'template' => '
  140 + <div class="input-blocks-wrapper city-two">
  141 + <?= $form->field($model, 'city_custom', [ 'options' => [ 'class' => 'input-blocks' ] ])
  142 + ->label('Город не в списке')
  143 + ->textInput([ 'class' => 'custom-input-2' ]) ?>
  144 + <div class="form-help-two">Если вашего города нет в списке, введите его.</div>
  145 + </div>
  146 + <div class="input-blocks-wrapper captcha-wr">
  147 + <?= $form->field($model, 'verifyCode')
  148 + ->widget(Captcha::className(), [
  149 + 'options' => [ 'class' => 'custom-input-2' ],
  150 + 'template' => '
143 151 <div class="input-blocks-wrapper captcha">
144 152 <div class="input-blocks-captcha">
145 153 {image}
... ... @@ -152,16 +160,17 @@ use yii\widgets\ActiveForm;
152 160 </div>
153 161 </div>
154 162 ',
155   - ])->label(false) ?>
156   - </div>
157   - <div class="input-blocks-wrapper button">
158   - <button type="submit" value="Submit">Зарегистрироваться</button>
159   - </div>
  163 + ])
  164 + ->label(false) ?>
  165 + </div>
  166 + <div class="input-blocks-wrapper button">
  167 + <button type="submit" value="Submit">Зарегистрироваться</button>
160 168 </div>
161 169 </div>
162 170 </div>
  171 + </div>
163 172  
164   - <?php ActiveForm::end()?>
  173 + <?php ActiveForm::end() ?>
165 174 </div>
166 175 </div>
167 176 </div>
... ... @@ -169,7 +178,7 @@ use yii\widgets\ActiveForm;
169 178  
170 179 </div>
171 180 <?php
172   - $js = "
  181 + $js = "
173 182 var labelName= $('.field-signupform-firstname label').text()
174 183 var labelLastName= $('.field-signupform-lastname label').text()
175 184 var newLabelName= 'представителя'
... ... @@ -212,6 +221,6 @@ use yii\widgets\ActiveForm;
212 221 })
213 222 ";
214 223  
215   -$this->registerJS($js );
  224 + $this->registerJS($js);
216 225 ?>
217 226  
... ...