Commit 143979c5d8451dd44f3af9e4855fc0c968841e1e
1 parent
db659e19
test
Showing
5 changed files
with
163 additions
and
134 deletions
Show diff stats
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 | ... | ... |