Commit ebde7ea615601a0800024e068709123731510edf

Authored by Anastasia
1 parent c915c06e

- forms

backend/controllers/CommentController.php
... ... @@ -13,8 +13,10 @@
13 13 use artbox\core\admin\actions\View;
14 14 use artbox\core\admin\widgets\Form;
15 15 use common\models\Comment;
  16 + use common\models\Service;
16 17 use yii\filters\AccessControl;
17 18 use yii\filters\VerbFilter;
  19 + use yii\helpers\ArrayHelper;
18 20 use yii\web\Controller;
19 21 use yii\web\NotFoundHttpException;
20 22  
... ... @@ -103,6 +105,7 @@
103 105  
104 106 public function findModel($id)
105 107 {
  108 +
106 109 $model = Comment::find()
107 110 ->where([ 'id' => $id ])
108 111 ->one();
... ... @@ -122,6 +125,7 @@
122 125 ]
123 126 )
124 127 ->one();
  128 +
125 129  
126 130 return $category->delete();
127 131 }
... ... @@ -129,7 +133,8 @@
129 133 public function actionUpdate($id)
130 134 {
131 135 $model = $this->findModel($id);
132   -
  136 + $services = Service::find()->all();
  137 + $data = ArrayHelper::map($services, 'id', 'title');
133 138 if ($model->load(\Yii::$app->request->post()) && $model->save()) {
134 139 return $this->redirect('index');
135 140 } else {
... ... @@ -137,6 +142,7 @@
137 142 'update',
138 143 [
139 144 'model' => $model,
  145 + 'services' => $data
140 146 ]
141 147 );
142 148 }
... ...
backend/controllers/QuestionController.php
... ... @@ -13,8 +13,10 @@
13 13 use artbox\core\admin\actions\View;
14 14 use artbox\core\admin\widgets\Form;
15 15 use common\models\Question;
  16 + use common\models\Service;
16 17 use yii\filters\AccessControl;
17 18 use yii\filters\VerbFilter;
  19 + use yii\helpers\ArrayHelper;
18 20 use yii\web\Controller;
19 21 use yii\web\NotFoundHttpException;
20 22  
... ... @@ -129,7 +131,8 @@
129 131 public function actionUpdate($id)
130 132 {
131 133 $model = $this->findModel($id);
132   -
  134 + $services = Service::find()->all();
  135 + $data = ArrayHelper::map($services, 'id', 'title');
133 136 $model->scenario = Question::SCENARIO_ANSWER;
134 137 if ($model->load(\Yii::$app->request->post()) && $model->save()) {
135 138 return $this->redirect('index');
... ... @@ -138,6 +141,7 @@
138 141 'update',
139 142 [
140 143 'model' => $model,
  144 + 'services' => $data
141 145 ]
142 146 );
143 147 }
... ...
backend/views/comment/_form.php
1 1 <?php
2 2  
  3 + use artbox\core\admin\assets\Select2;
3 4 use artbox\core\admin\assets\Switchery;
4 5 use yii\helpers\Html;
5 6 use yii\web\View;
... ... @@ -16,16 +17,22 @@ $(&#39;.switchery&#39;).each(function(idx, elem) {
16 17 secondaryColor:'#e2e2e2'
17 18 });
18 19 });
  20 +
  21 +$(".select_service").select2();
19 22 JS;
20 23  
21   -
  24 + Select2::register($this);
22 25 $this->registerJs($js, View::POS_READY);
  26 +
23 27 ?>
24 28  
25 29 <div class="feedback-form">
26 30  
27 31 <?php $form = ActiveForm::begin(); ?>
28 32  
  33 + <?=$form->field($model, 'service_id')->dropDownList($services, [
  34 + 'class' => 'select_service'
  35 + ])?>
29 36 <?= $form->field($model, 'name')
30 37 ->textInput([ 'maxlength' => true ]) ?>
31 38  
... ...
backend/views/comment/update.php
... ... @@ -4,6 +4,7 @@
4 4  
5 5 /* @var $this yii\web\View */
6 6 /* @var $model \common\models\Comment */
  7 + /* @var $services \common\models\Service[] */
7 8  
8 9 $this->title = Yii::t(
9 10 'app',
... ... @@ -39,6 +40,7 @@
39 40 '_form',
40 41 [
41 42 'model' => $model,
  43 + 'services' => $services
42 44 ]
43 45 ) ?>
44 46  
... ...
backend/views/question/_form.php
... ... @@ -16,6 +16,8 @@ $(&#39;.switchery&#39;).each(function(idx, elem) {
16 16 secondaryColor:'#e2e2e2'
17 17 });
18 18 });
  19 +
  20 +$(".select_service").select2();
19 21 JS;
20 22  
21 23  
... ... @@ -25,7 +27,9 @@ JS;
25 27 <div class="feedback-form">
26 28  
27 29 <?php $form = ActiveForm::begin(); ?>
28   -
  30 + <?=$form->field($model, 'service_id')->dropDownList($services, [
  31 + 'class' => 'select_service'
  32 + ])?>
29 33 <?= $form->field($model, 'name')
30 34 ->textInput([ 'maxlength' => true ]) ?>
31 35  
... ...
backend/views/question/update.php
... ... @@ -39,6 +39,7 @@
39 39 '_form',
40 40 [
41 41 'model' => $model,
  42 + 'services' => $services,
42 43 ]
43 44 ) ?>
44 45  
... ...
common/models/Comment.php
1 1 <?php
2   -
3   -namespace common\models;
4   -
5   -use Yii;
6   -
7   -/**
8   - * This is the model class for table "comment".
9   - *
10   - * @property int $id
11   - * @property string $name
12   - * @property string $email
13   - * @property string $comment
14   - * @property bool $status
15   - * @property int $service_id
16   - * @property int $created_at
17   - * @property int $updated_at
18   - */
19   -class Comment extends \yii\db\ActiveRecord
20   -{
21   - /**
22   - * {@inheritdoc}
23   - */
24   - public static function tableName()
25   - {
26   - return 'comment';
27   - }
28   -
29   - /**
30   - * {@inheritdoc}
31   - */
32   - public function rules()
33   - {
34   - return [
35   - [['comment'], 'string'],
36   - [['status', 'on_main'], 'boolean'],
37   - [['service_id', 'created_at', 'updated_at'], 'default', 'value' => null],
38   - [['service_id', 'created_at', 'updated_at'], 'integer'],
39   - [['name', 'email'], 'string', 'max' => 255],
40   - ];
41   - }
  2 +
  3 + namespace common\models;
  4 +
  5 + use Yii;
  6 + use yii\behaviors\TimestampBehavior;
42 7  
43 8 /**
44   - * {@inheritdoc}
  9 + * This is the model class for table "comment".
  10 + *
  11 + * @property int $id
  12 + * @property string $name
  13 + * @property string $email
  14 + * @property string $comment
  15 + * @property bool $status
  16 + * @property int $service_id
  17 + * @property int $created_at
  18 + * @property int $updated_at
45 19 */
46   - public function attributeLabels()
  20 + class Comment extends \yii\db\ActiveRecord
47 21 {
48   - return [
49   - 'id' => Yii::t('app', 'ID'),
50   - 'name' => Yii::t('app', 'Name'),
51   - 'email' => Yii::t('app', 'Email'),
52   - 'comment' => Yii::t('app', 'Comment'),
53   - 'status' => Yii::t('app', 'Status'),
54   - 'service_id' => Yii::t('app', 'Service ID'),
55   - 'created_at' => Yii::t('app', 'Created At'),
56   - 'updated_at' => Yii::t('app', 'Updated At'),
57   - ];
  22 + /**
  23 + * {@inheritdoc}
  24 + */
  25 + public static function tableName()
  26 + {
  27 + return 'comment';
  28 + }
  29 +
  30 +
  31 + /**
  32 + * @inheritdoc
  33 + */
  34 + public function behaviors()
  35 + {
  36 + return [
  37 + [
  38 + 'class' => TimestampBehavior::className(),
  39 + 'updatedAtAttribute' => false,
  40 + ],
  41 + ];
  42 + }
  43 + /**
  44 + * {@inheritdoc}
  45 + */
  46 + public function rules()
  47 + {
  48 + return [
  49 + [
  50 + [ 'comment' ],
  51 + 'string',
  52 + ],
  53 + [
  54 + [
  55 + 'status',
  56 + 'on_main',
  57 + ],
  58 + 'boolean',
  59 + ],
  60 + [
  61 + [
  62 + 'service_id',
  63 + 'created_at',
  64 + 'updated_at',
  65 + ],
  66 + 'default',
  67 + 'value' => null,
  68 + ],
  69 + [
  70 + [
  71 + 'service_id',
  72 + 'created_at',
  73 + 'updated_at',
  74 + ],
  75 + 'integer',
  76 + ],
  77 + [
  78 + [
  79 + 'name',
  80 + 'email',
  81 + ],
  82 + 'string',
  83 + 'max' => 255,
  84 + ],
  85 + [
  86 + [
  87 + 'name', 'email'
  88 + ],
  89 + 'required'
  90 + ],
  91 + [
  92 + ['email'],
  93 + 'email'
  94 + ]
  95 + ];
  96 + }
  97 +
  98 + /**
  99 + * {@inheritdoc}
  100 + */
  101 + public function attributeLabels()
  102 + {
  103 + return [
  104 + 'id' => Yii::t('app', 'ID'),
  105 + 'name' => Yii::t('app', 'Name'),
  106 + 'email' => Yii::t('app', 'Email'),
  107 + 'comment' => Yii::t('app', 'Comment'),
  108 + 'status' => Yii::t('app', 'Status'),
  109 + 'service_id' => Yii::t('app', 'Service ID'),
  110 + 'created_at' => Yii::t('app', 'Created At'),
  111 + 'updated_at' => Yii::t('app', 'Updated At'),
  112 + ];
  113 + }
58 114 }
59   -}
... ...
common/models/Question.php
... ... @@ -29,7 +29,7 @@
29 29 {
30 30 return 'question';
31 31 }
32   -
  32 +
33 33 /**
34 34 * @inheritdoc
35 35 */
... ... @@ -43,6 +43,7 @@
43 43 'name',
44 44 'email',
45 45 'question',
  46 + 'service_id'
46 47 ],
47 48 self::SCENARIO_ANSWER => [
48 49 'answer',
... ... @@ -112,6 +113,9 @@
112 113 'targetClass' => Service::className(),
113 114 'targetAttribute' => [ 'service_id' => 'id' ],
114 115 ],
  116 + [
  117 + 'email', 'email'
  118 + ]
115 119 ];
116 120 }
117 121  
... ...
frontend/config/main.php
... ... @@ -21,7 +21,6 @@
21 21 ]
22 22 ],
23 23 'modules' => [
24   -
25 24 'feedback' => [
26 25 'class' => 'artbox\core\forms\Module',
27 26 'activeRecord' => "artbox\core\models\Feedback",
... ... @@ -80,6 +79,115 @@
80 79 }',
81 80  
82 81 ],
  82 +
  83 + 'comments' => [
  84 + 'class' => 'artbox\core\forms\Module',
  85 + 'activeRecord' => "common\models\Comment",
  86 + 'attributes' => [
  87 + 'name',
  88 + 'email',
  89 + 'comment',
  90 + 'service_id'
  91 + ],
  92 + 'rules' => [
  93 + [
  94 + [
  95 + 'name',
  96 + 'email',
  97 + ],
  98 + 'required',
  99 + ]
  100 + ],
  101 + 'labels' => [
  102 + 'name' => 'ФИО',
  103 + 'email' => 'Email',
  104 + 'comment' => 'Ваш отзыв',
  105 + 'service_id' => false
  106 + ],
  107 +
  108 + 'inputOptions' => [
  109 + 'name' => [
  110 + 'template' => '<div class="input-wr required">{input}</div>'
  111 + ],
  112 + 'email' => [
  113 + 'template' => '<div class="input-wr required">{input}</div>'
  114 + ],
  115 + 'comment' => [
  116 + 'type' => 'textarea',
  117 + 'options' => [],
  118 + 'template' => '<div class="input-wr">{input}</div>'
  119 + ],
  120 + ],
  121 + 'buttonTemplate' => '<div class="button-wr submit-close-wr-c-a">{button} <div class="submit-close-c-a"><span>Закрыть окно</span></div></div>',
  122 + 'buttonOptions' => [],
  123 + 'buttonContent' => 'Отправить отзыв',
  124 + 'sendEmail' => false,
  125 + 'ajax' => true,
  126 + 'formId' => 'comment-form',
  127 + 'scenario' => 'default',
  128 + 'successCallback' => 'function (data) {
  129 + document.getElementById("comment-form").reset();
  130 + var data = $("#comment-form").data(\'yiiActiveForm\');
  131 + $("#comment-form").find(".submit-close-c-a span").click();
  132 + $("#comment-form").parent().parent().parent().find(".service-c-a-btns").after("<p>Ваш отзыв появиться после проверки модератором</p>")
  133 + data.validated = false;
  134 + }',
  135 +
  136 + ],
  137 + 'questions' => [
  138 + 'class' => 'artbox\core\forms\Module',
  139 + 'activeRecord' => "common\models\Question",
  140 + 'attributes' => [
  141 + 'name',
  142 + 'email',
  143 + 'question',
  144 + 'service_id'
  145 + ],
  146 + 'rules' => [
  147 + [
  148 + [
  149 + 'name',
  150 + 'email',
  151 + ],
  152 + 'required',
  153 + ]
  154 + ],
  155 + 'labels' => [
  156 + 'name' => 'ФИО',
  157 + 'email' => 'Email',
  158 + 'question' => 'Ваш вопрос',
  159 + 'service_id' => false
  160 + ],
  161 +
  162 + 'inputOptions' => [
  163 + 'name' => [
  164 + 'template' => '<div class="input-wr required">{input}</div>'
  165 + ],
  166 + 'email' => [
  167 + 'template' => '<div class="input-wr required">{input}</div>'
  168 + ],
  169 + 'question' => [
  170 + 'type' => 'textarea',
  171 + 'options' => [],
  172 + 'template' => '<div class="input-wr">{input}</div>'
  173 + ],
  174 + ],
  175 + 'buttonTemplate' => '<div class="button-wr submit-close-wr-c-a">{button} <div class="submit-close-c-a"><span>Закрыть окно</span></div></div>',
  176 + 'buttonOptions' => [],
  177 + 'buttonContent' => 'Отправить вопрос',
  178 + 'sendEmail' => false,
  179 + 'ajax' => true,
  180 + 'formId' => 'question-form',
  181 + 'scenario' => 'question',
  182 + 'successCallback' => 'function (data) {
  183 + document.getElementById("comment-form").reset();
  184 + var data = $("#question-form").data(\'yiiActiveForm\');
  185 + $("#question-form").find(".submit-close-c-a span").click();
  186 + $("#question-form").parent().parent().parent().find(".service-c-a-btns").after("<p>Спасибо за Вваш вопрос. Мы обязательно на него ответим</p>")
  187 + data.validated = false;
  188 + }',
  189 +
  190 + ],
83 191 ],
84 192 'components' => [
85 193 'assetManager' => [
... ...
frontend/views/layouts/main.php
... ... @@ -19,7 +19,6 @@
19 19 use common\models\Service;
20 20 use common\models\Settings;
21 21 use frontend\assets\AppAsset;
22   - use artbox\core\components\imagemanager\models\ImageManager;
23 22 use frontend\assets\SliderAsset;
24 23 use frontend\widgets\ArtboxModalWidget;
25 24 use frontend\widgets\LanguageWidget;
... ... @@ -166,7 +165,7 @@
166 165 }
167 166 $items[] = [
168 167 'label' => \Yii::t('app', 'Цены'),
169   - 'url' => '#',
  168 + 'url' => Url::to(['site/prices']),
170 169 'options' => [
171 170 'class' => 'active'
172 171 ]
... ...
frontend/views/service/view.php
... ... @@ -2,15 +2,29 @@
2 2 /**
3 3 * @var \common\models\Service $model;
4 4 * @var \common\models\Service[] $others;
  5 + * @var \artbox\core\forms\Module $moduleComment;
  6 + * @var \artbox\core\forms\Module $moduleQuestion;
5 7 */
6 8 use artbox\core\helpers\Url;
7 9  
8   - $this->params[ 'breadcrumbs' ][] = $model->title
  10 + $moduleComment = \Yii::$app->getModule('comments');
  11 + $this->params[ 'breadcrumbs' ][] = $model->title;
  12 +
  13 + $moduleComment->inputOptions += ['service_id' => [
  14 + 'type' => 'hiddenInput',
  15 + 'options' => ['value' => $model->id],
  16 + ]];
  17 +
  18 + $moduleQuestion = \Yii::$app->getModule('questions');
  19 + $moduleQuestion->inputOptions += ['service_id' => [
  20 + 'type' => 'hiddenInput',
  21 + 'options' => ['value' => $model->id],
  22 + ]];
9 23 ?>
10 24 <section class="section-service-page">
11 25 <div class="container">
12 26 <div class="row">
13   - <div class="hidden-xs col-xs-12 col-sm-4 col-md-3">
  27 + <div class="hidden-xs col-xs-12 col-sm-4 col-md-4 col-lg-3">
14 28 <div class="style service-list-wr">
15 29 <ul>
16 30 <?php foreach ($others as $service){?>
... ... @@ -19,7 +33,7 @@
19 33 </ul>
20 34 </div>
21 35 </div>
22   - <div class="col-xs-12 col-sm-8 col-md-9">
  36 + <div class="col-xs-12 col-sm-8 col-md-8 col-lg-9">
23 37 <div class="row">
24 38 <div class="col-xs-12">
25 39 <h1 class="title-pages"><?=$model->title?></h1>
... ... @@ -34,34 +48,62 @@
34 48 </div>
35 49 </div>
36 50 </section>
37   -<?php if (!empty($model->comments) or !empty($model->questions)){?>
38 51 <section class="section-comments-answers fix-map-margin">
39   - <div class="container">
40   - <div class="row">
41   - <?php if (!empty($model->comments)){?>
42   - <div class="col-xs-12 col-sm-4 col-md-4">
43   - <div class="title-c-a">Отзывы</div>
44   - <div class="service-comments-wr style">
45   - <?php foreach ($model->comments as $comment){?>
46   - <div class="service-comments style">
47   - <div class="style comments-h-autor"><?=$comment->name?></div>
48   - <div class="style comments-h-text"><?=$comment->comment?></div>
49   - <div class="style comments-h-date"><?=date('d.m.Y', $comment->created_at)?></div>
50   - </div>
51   - <?php }?>
52   - </div>
53   -
54   - <div class="service-links-c-a">Все отзывы</div>
55   - <div class="service-c-a-btns">
56   - <span class="btn_">Оставить отзыв</span>
57   - </div>
58   - </div>
59   - <?php }?>
60   - <div class="hidden-xs col-sm-1"></div>
61   - <div class="col-xs-12 col-sm-7 col-md-7">
62   - <div class="title-c-a">Вопрос-ответ</div>
  52 + <div class="container">
  53 + <div class="row">
  54 + <div class="col-xs-12 col-sm-4 col-md-4 fix-form-c-a-wr">
  55 + <div class="title-c-a">Отзывы</div>
  56 + <div class="service-comments-wr style">
  57 + <?php foreach ($model->comments as $comment){?>
  58 + <div class="service-comments style">
  59 + <div class="style comments-h-autor"><?=$comment->name?></div>
  60 + <div class="style comments-h-text"><?=$comment->comment?></div>
  61 + <div class="style comments-h-date"><?=date('d.m.Y', $comment->created_at)?></div>
  62 + </div>
  63 + <?php }?>
  64 + </div>
  65 +
  66 + <div class="style service-links-c-a"><a href="#">Все отзывы</a></div>
  67 + <div class="style service-c-a-btns">
  68 + <span class="btn_">Оставить отзыв</span>
  69 + </div>
  70 + <div class="style hidden-form-c-a-wr hidden">
  71 + <div class="style hidden-form-c-a">
  72 + <div class="title-forms-c-a style">Оставить отзыв</div>
  73 + <?php $moduleComment->renderForm($this)?>
  74 + </div>
  75 + </div>
  76 + </div>
  77 + <div class="hidden-xs hidden-sm col-sm-1"></div>
  78 + <div class="col-xs-12 col-sm-8 col-md-7 service-ansver-mob-line">
  79 + <div class="title-c-a">Вопрос-ответ</div>
  80 + <div class="service-comments-wr style">
  81 + <div class="service-comments style service-ansvers">
  82 + <div class="style comments-h-autor">Мария</div>
  83 + <div class="style comments-h-text">У меня диагноз склерокистоз яичников, врачи назначили пить полгода гормональные а потом сказали возможно придется делать операцию, объясните пожалуйста зачем назначены гормональные если потом нужна операция и что это за операция и мсогу ли я иметь детей после такого лечения и операции? </div>
  84 + <div class="service-ansvers-text-wr style">
  85 + <div class="service-ansvers-title">врач-гинеколог <span>Алексей нестеренко</span></div>
  86 + <div class="service-ansvers-txt">
  87 + Вероятно, врачи пытались решить Вашу проблему консервативными методами, так как любая операция, это крайняя мера, когда другие методы лечения уже не эффективны. Относительно объема операции, заочно судить об этом весьма затруднительно (поймете это правильно), так как у каждого человека любое заболевание протекает сугубо индивидуально. Возможно потребуется удаление только наиболее измененной части яичников, с тем чтобы нормально могла функционировать оставшаяся часть. Если сохранится даже часть яичников, то наступление беременности вполне возможно.
  88 + </div>
63 89 </div>
  90 + </div>
  91 +
  92 +
  93 + </div>
  94 +
  95 + <div class="style service-links-c-a service-links-a"><a href="#">Все вопросы</a></div>
  96 + <div class="style service-c-a-btns">
  97 + <span class="btn_">Задать вопрос</span>
  98 + </div>
  99 +
  100 + <div class="style hidden-form-c-a-wr hidden">
  101 + <div class="style hidden-form-c-a">
  102 + <div class="title-forms-c-a style">Задать вопрос </div>
  103 + <?php $moduleQuestion->renderForm($this)?>
  104 + </div>
64 105 </div>
  106 + </div>
65 107 </div>
  108 + </div>
66 109 </section>
67   -<?php } ?>
68 110 \ No newline at end of file
... ...
frontend/web/js/script.js
... ... @@ -409,8 +409,8 @@ $(document).ready(function() {
409 409 }
410 410  
411 411  
412   - $('nav').addClass('hide_')
413   - $('body').addClass('start-preloader')
  412 + $('nav').addClass('hide_');
  413 + $('body').addClass('start-preloader');
414 414  
415 415 window.onload = function () {
416 416 //
... ... @@ -421,15 +421,17 @@ $(document).ready(function() {
421 421 //альтернативный с задержкой выключения
422 422 setTimeout(function () {
423 423 $('body').addClass('end-preloader')
424   - },2700)
  424 + },2700);
425 425  
426 426 setTimeout(function () {
427   - $('nav').addClass('start')
428   - $('body').addClass('disabled-preloader')
  427 + console.log('start');
  428 + $('nav').addClass('start');
  429 + $('body').addClass('disabled-preloader');
  430 +
429 431 },2700 + 2000)
430 432 }
431 433  
432 434  
433 435  
434 436  
435   -})
436 437 \ No newline at end of file
  438 +});
437 439 \ No newline at end of file
... ...