Commit c316e881391881eb84e261a0d2771567e188f97b
Merge remote-tracking branch 'origin/master'
Showing
2 changed files
with
106 additions
and
2 deletions
Show diff stats
frontend/controllers/SiteController.php
... | ... | @@ -14,6 +14,7 @@ |
14 | 14 | use common\models\SignupForm; |
15 | 15 | use Yii; |
16 | 16 | use yii\base\InvalidParamException; |
17 | + use yii\bootstrap\Html; | |
17 | 18 | use yii\web\BadRequestHttpException; |
18 | 19 | use yii\web\Controller; |
19 | 20 | use yii\filters\VerbFilter; |
... | ... | @@ -193,6 +194,40 @@ |
193 | 194 | } |
194 | 195 | } |
195 | 196 | |
197 | + public function actionCallback() | |
198 | + { | |
199 | + Yii::$app->response->format = Response::FORMAT_JSON; | |
200 | + $model = new Feedback( | |
201 | + [ | |
202 | + 'scenario' => Feedback::SCENARIO_CALLBACK, | |
203 | + ] | |
204 | + ); | |
205 | + if ($model->load(Yii::$app->request->post()) && $model->save()) { | |
206 | + \Yii::$app->session->setFlash( | |
207 | + 'success', | |
208 | + Html::tag( | |
209 | + 'div', | |
210 | + Html::tag( | |
211 | + 'h3', | |
212 | + \Yii::t('app', 'Обратный звонок') | |
213 | + ) . Html::tag( | |
214 | + 'p', | |
215 | + \Yii::t( | |
216 | + 'app', | |
217 | + 'Ваша заявка успешно отправлена. Мы свяжемся с Вами в ближайшее время.' | |
218 | + ) | |
219 | + ) | |
220 | + ) | |
221 | + ); | |
222 | + return $this->redirect($model->returnUrl ? : [ 'index' ]); | |
223 | + } else { | |
224 | + return [ | |
225 | + 'success' => false, | |
226 | + 'error' => $model->errors, | |
227 | + ]; | |
228 | + } | |
229 | + } | |
230 | + | |
196 | 231 | public function actionLogin() |
197 | 232 | { |
198 | 233 | if (!\Yii::$app->user->isGuest) { | ... | ... |
frontend/views/layouts/main.php
... | ... | @@ -19,6 +19,7 @@ |
19 | 19 | use yii\base\Model; |
20 | 20 | use yii\bootstrap\ActiveForm; |
21 | 21 | use yii\bootstrap\Html; |
22 | + use yii\helpers\Url; | |
22 | 23 | use yii\web\View; |
23 | 24 | use yii\widgets\Breadcrumbs; |
24 | 25 | |
... | ... | @@ -138,8 +139,8 @@ _________________________________________________________ --> |
138 | 139 | </div> |
139 | 140 | <div class="inline-block"> |
140 | 141 | <span class="top-phone"><i class="fa fa-phone"></i> <?php echo $settings->phone; ?></span> |
141 | - <a href="#" class="link-underline_dott"> | |
142 | - Обратный звонок | |
142 | + <a href="#" data-toggle="modal" data-target="#callback-modal" class="link-underline_dott"> | |
143 | + <?php echo "Обратный звонок"; ?> | |
143 | 144 | </a> |
144 | 145 | </div> |
145 | 146 | <div class="inline-block login"> |
... | ... | @@ -440,6 +441,74 @@ _________________________________________________________ --> |
440 | 441 | ?> |
441 | 442 | |
442 | 443 | <!-- *** Breadcrumbs *** --> |
444 | + <!-- *** FEEDBACK MODAL BEGIN *** --> | |
445 | + <?php | |
446 | + ?> | |
447 | + | |
448 | + <?php | |
449 | + $callback = new Feedback( | |
450 | + [ | |
451 | + 'scenario' => Feedback::SCENARIO_CALLBACK, | |
452 | + 'returnUrl' => Url::current([], true), | |
453 | + ] | |
454 | + ); | |
455 | + ?> | |
456 | + <div class="modal fade" id="callback-modal" tabindex="-1" role="dialog" aria-labelledby="Login" aria-hidden="true"> | |
457 | + <div class="modal-dialog modal-sm"> | |
458 | + | |
459 | + <div class="modal-content"> | |
460 | + <div class="modal-header"> | |
461 | + <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> | |
462 | + <h4 class="modal-title callback" id="Login">Обратный звонок</h4> | |
463 | + </div> | |
464 | + <div class="modal-body"> | |
465 | + <?php | |
466 | + $form = ActiveForm::begin( | |
467 | + [ | |
468 | + 'action' => [ 'site/callback' ], | |
469 | + ] | |
470 | + ); | |
471 | + echo $form->field($callback, 'returnUrl') | |
472 | + ->label(false) | |
473 | + ->hiddenInput(); | |
474 | + echo $form->field($callback, 'name') | |
475 | + ->label(false) | |
476 | + ->textInput( | |
477 | + [ | |
478 | + 'placeholder' => $callback->getAttributeLabel('name'), | |
479 | + ] | |
480 | + ); | |
481 | + echo $form->field($callback, 'phone') | |
482 | + ->label(false) | |
483 | + ->textInput( | |
484 | + [ | |
485 | + 'placeholder' => $callback->getAttributeLabel('phone'), | |
486 | + ] | |
487 | + ); | |
488 | + echo Html::tag( | |
489 | + 'p', | |
490 | + Html::submitButton( | |
491 | + Html::icon( | |
492 | + 'sign-in', | |
493 | + [ | |
494 | + 'prefix' => 'fa fa-', | |
495 | + ] | |
496 | + ) . \Yii::t('app', 'Отправить'), | |
497 | + [ | |
498 | + 'class' => 'btn btn-template-main', | |
499 | + ] | |
500 | + ), | |
501 | + [ | |
502 | + 'class' => 'text-center', | |
503 | + ] | |
504 | + ); | |
505 | + $form::end(); | |
506 | + ?> | |
507 | + </div> | |
508 | + </div> | |
509 | + </div> | |
510 | + </div> | |
511 | + <!-- *** FEEDBACK MODAL END *** --> | |
443 | 512 | <?php |
444 | 513 | if (!$isHome) { |
445 | 514 | ?> | ... | ... |