Commit 10ec2a3b1b4e5eb1f0d5cfa29c7be3579671a86d
1 parent
d866a1ad
feedback
Showing
9 changed files
with
669 additions
and
481 deletions
Show diff stats
backend/controllers/FeedbackController.php
... | ... | @@ -44,12 +44,9 @@ |
44 | 44 | 'index' => [ |
45 | 45 | 'class' => Index::className(), |
46 | 46 | 'columns' => [ |
47 | - 'name' => [ | |
47 | + 'phone' => [ | |
48 | 48 | 'type' => Index::ACTION_COL, |
49 | 49 | ], |
50 | - 'email' => [ | |
51 | - 'type' => Index::STRING_COL | |
52 | - ], | |
53 | 50 | 'status' => [ |
54 | 51 | 'type' => Index::STATUS_COL, |
55 | 52 | ], |
... | ... | @@ -74,22 +71,10 @@ |
74 | 71 | ], |
75 | 72 | 'fields' => [ |
76 | 73 | [ |
77 | - 'name' => 'name', | |
78 | - 'type' => Form::STRING, | |
79 | - ], | |
80 | - [ | |
81 | - 'name' => 'email', | |
82 | - 'type' => Form::STRING, | |
83 | - ], | |
84 | - [ | |
85 | 74 | 'name' => 'phone', |
86 | 75 | 'type' => Form::STRING, |
87 | 76 | ], |
88 | 77 | [ |
89 | - 'name' => 'message', | |
90 | - 'type' => Form::TEXTAREA, | |
91 | - ], | |
92 | - [ | |
93 | 78 | 'name' => 'ip', |
94 | 79 | 'type' => Form::STRING, |
95 | 80 | ], | ... | ... |
backend/views/feedback/_form.php
... | ... | @@ -11,12 +11,19 @@ |
11 | 11 | <div class="feedback-form"> |
12 | 12 | |
13 | 13 | <?php $form = ActiveForm::begin(); ?> |
14 | - | |
15 | - <?= $form->field($model, 'name') | |
16 | - ->textInput([ 'maxlength' => true ]) ?> | |
17 | - | |
18 | - <?= $form->field($model, 'email') | |
19 | - ->textInput([ 'maxlength' => true ]) ?> | |
14 | + <?php | |
15 | + switch ($model->time){ | |
16 | + case 1: | |
17 | + echo "<p>В течении 30 минут</p>"; | |
18 | + break; | |
19 | + case 2: | |
20 | + echo "<p>C 9.00 до 12.00</p>"; | |
21 | + break; | |
22 | + case 3: | |
23 | + echo "<p>C 12.00 до 18.00</p>"; | |
24 | + break; | |
25 | + } | |
26 | + ?> | |
20 | 27 | |
21 | 28 | <?= $form->field($model, 'phone') |
22 | 29 | ->textInput([ 'maxlength' => true ]) ?> | ... | ... |
common/models/Feedback.php
... | ... | @@ -26,9 +26,16 @@ |
26 | 26 | const SCENARIO_FEEDBACK = 'feedback'; |
27 | 27 | const SCENARIO_CALLBACK = 'callback'; |
28 | 28 | |
29 | + const DURING_30_MIN = '1'; | |
30 | + | |
31 | + const FROM_9_12 = '2'; | |
32 | + | |
33 | + const FROM_12_18 = '3' ; | |
29 | 34 | |
30 | 35 | public $returnUrl; |
31 | 36 | |
37 | + public $agree; | |
38 | + | |
32 | 39 | /** |
33 | 40 | * @inheritdoc |
34 | 41 | */ |
... | ... | @@ -53,9 +60,9 @@ |
53 | 60 | 'returnUrl', |
54 | 61 | ], |
55 | 62 | self::SCENARIO_CALLBACK => [ |
56 | - 'name', | |
57 | 63 | 'phone', |
58 | - 'message', | |
64 | + 'time', | |
65 | + 'agree', | |
59 | 66 | 'returnUrl', |
60 | 67 | ], |
61 | 68 | ] |
... | ... | @@ -120,7 +127,6 @@ |
120 | 127 | [ |
121 | 128 | [ |
122 | 129 | 'phone', |
123 | - 'name', | |
124 | 130 | ], |
125 | 131 | 'required', |
126 | 132 | 'on' => self::SCENARIO_CALLBACK, |
... | ... | @@ -151,7 +157,7 @@ |
151 | 157 | ], |
152 | 158 | [ |
153 | 159 | [ |
154 | - 'status', | |
160 | + 'status' | |
155 | 161 | ], |
156 | 162 | 'boolean', |
157 | 163 | ], |
... | ... | @@ -159,6 +165,17 @@ |
159 | 165 | 'returnUrl', |
160 | 166 | 'safe', |
161 | 167 | ], |
168 | + [ | |
169 | + [ 'time' ], 'integer' | |
170 | + ], | |
171 | + [ | |
172 | + [ | |
173 | + 'agree', | |
174 | + ], | |
175 | + 'in', | |
176 | + 'range' => [ 1 ], | |
177 | + 'allowArray' => false, | |
178 | + ], | |
162 | 179 | ]; |
163 | 180 | } |
164 | 181 | ... | ... |
common/models/Visit.php
console/migrations/m180613_101610_alter_package_table.php
0 → 100644
1 | +<?php | |
2 | + | |
3 | +use yii\db\Migration; | |
4 | + | |
5 | +/** | |
6 | + * Class m180613_101610_alter_package_table | |
7 | + */ | |
8 | +class m180613_101610_alter_package_table extends Migration | |
9 | +{ | |
10 | + /** | |
11 | + * {@inheritdoc} | |
12 | + */ | |
13 | + public function safeUp() | |
14 | + { | |
15 | + $this->addColumn('package', 'service_id', $this->integer()); | |
16 | + | |
17 | + $this->addForeignKey('package_service_fk', | |
18 | + 'package', | |
19 | + 'service_id', | |
20 | + 'service', | |
21 | + 'id', | |
22 | + 'SET NULL', | |
23 | + 'CASCADE'); | |
24 | + } | |
25 | + | |
26 | + /** | |
27 | + * {@inheritdoc} | |
28 | + */ | |
29 | + public function safeDown() | |
30 | + { | |
31 | + $this->dropForeignKey('package_service_fk', 'package'); | |
32 | + $this->dropColumn('service_id', 'package'); | |
33 | + } | |
34 | + | |
35 | + /* | |
36 | + // Use up()/down() to run migration code without a transaction. | |
37 | + public function up() | |
38 | + { | |
39 | + | |
40 | + } | |
41 | + | |
42 | + public function down() | |
43 | + { | |
44 | + echo "m180613_101610_alter_package_table cannot be reverted.\n"; | |
45 | + | |
46 | + return false; | |
47 | + } | |
48 | + */ | |
49 | +} | ... | ... |
console/migrations/m180712_081623_alter_table_visit.php
0 → 100644
1 | +<?php | |
2 | + | |
3 | +use yii\db\Migration; | |
4 | + | |
5 | +/** | |
6 | + * Class m180712_081623_alter_table_visit | |
7 | + */ | |
8 | +class m180712_081623_alter_table_visit extends Migration | |
9 | +{ | |
10 | + /** | |
11 | + * {@inheritdoc} | |
12 | + */ | |
13 | + public function safeUp() | |
14 | + { | |
15 | + $this->addColumn('feedback', 'time', $this->integer()); | |
16 | + } | |
17 | + | |
18 | + /** | |
19 | + * {@inheritdoc} | |
20 | + */ | |
21 | + public function safeDown() | |
22 | + { | |
23 | + $this->dropColumn('feedback', 'time'); | |
24 | + } | |
25 | + | |
26 | + /* | |
27 | + // Use up()/down() to run migration code without a transaction. | |
28 | + public function up() | |
29 | + { | |
30 | + | |
31 | + } | |
32 | + | |
33 | + public function down() | |
34 | + { | |
35 | + echo "m180712_081623_alter_table_visit cannot be reverted.\n"; | |
36 | + | |
37 | + return false; | |
38 | + } | |
39 | + */ | |
40 | +} | ... | ... |
frontend/controllers/SiteController.php
... | ... | @@ -3,7 +3,7 @@ |
3 | 3 | namespace frontend\controllers; |
4 | 4 | |
5 | 5 | use artbox\core\models\Alias; |
6 | - use artbox\core\models\Feedback; | |
6 | + use common\models\Feedback; | |
7 | 7 | use artbox\core\models\Language; |
8 | 8 | use common\models\Comment; |
9 | 9 | use common\models\Package; |
... | ... | @@ -176,6 +176,17 @@ |
176 | 176 | return $this->renderFile($meta[ 'uri' ]); |
177 | 177 | } |
178 | 178 | |
179 | + public function actionCallback(){ | |
180 | + \Yii::$app->response->format = Response::FORMAT_JSON; | |
181 | + $model = new Feedback(); | |
182 | + $model->scenario = Feedback::SCENARIO_CALLBACK; | |
183 | + if ($model->load(\Yii::$app->request->post()) && $model->save()){ | |
184 | + return ['success' => true]; | |
185 | + }else{ | |
186 | + return ['success' => false, 'errors' => $model->errors]; | |
187 | + } | |
188 | + } | |
189 | + | |
179 | 190 | public function actionFeedback() |
180 | 191 | { |
181 | 192 | Yii::$app->response->format = Response::FORMAT_JSON; | ... | ... |
frontend/views/layouts/main.php
1 | 1 | <?php |
2 | - | |
2 | + | |
3 | 3 | /** |
4 | 4 | * @var View $this |
5 | 5 | * @var string $content |
... | ... | @@ -13,7 +13,7 @@ |
13 | 13 | use artbox\core\helpers\ImageHelper; |
14 | 14 | use artbox\core\helpers\Url; |
15 | 15 | use artbox\core\models\Alias; |
16 | - use artbox\core\models\Feedback; | |
16 | + use common\models\Feedback; | |
17 | 17 | use artbox\core\models\Language; |
18 | 18 | use artbox\core\models\PageCategory; |
19 | 19 | use artbox\core\models\User; |
... | ... | @@ -31,9 +31,9 @@ |
31 | 31 | use yii\helpers\Url as DefaultUrl; |
32 | 32 | use frontend\microdata\MicrodataFabric; |
33 | 33 | use frontend\assets\MapAsset; |
34 | - | |
35 | - | |
36 | -AppAsset::register($this); | |
34 | + use yii\widgets\ActiveForm; | |
35 | + | |
36 | + AppAsset::register($this); | |
37 | 37 | SliderAsset::register($this); |
38 | 38 | MapAsset::register($this); |
39 | 39 | $user = \Yii::$app->user->identity; |
... | ... | @@ -54,207 +54,232 @@ AppAsset::register($this); |
54 | 54 | [ |
55 | 55 | 'language.alias', |
56 | 56 | 'services' => function (ActiveQuery $query) { |
57 | - $query->where(['status' => true])->with( | |
58 | - [ | |
59 | - 'language.alias', | |
60 | - 'services' => function (ActiveQuery $query) { | |
61 | - $query->where(['status' => true])->with(['language.alias']); | |
62 | - }, | |
63 | - ] | |
64 | - ); | |
57 | + $query->where([ 'status' => true ]) | |
58 | + ->with( | |
59 | + [ | |
60 | + 'language.alias', | |
61 | + 'services' => function (ActiveQuery $query) { | |
62 | + $query->where([ 'status' => true ]) | |
63 | + ->with([ 'language.alias' ]); | |
64 | + }, | |
65 | + ] | |
66 | + ); | |
65 | 67 | }, |
66 | 68 | ] |
67 | - )->orderBy('sort') | |
69 | + ) | |
70 | + ->orderBy('sort') | |
68 | 71 | ->all(); |
69 | - | |
70 | - | |
71 | -# для автоматической генерации SEO параметров (title/description) в ситуациях, когда этих параметров нету | |
72 | -# мне нужно будет автоматически их подгенеривать, поэтому вместо $seo->title, которые является readOnly я использую эту переменную | |
73 | -$seoTitleName = $seo->title; | |
74 | -if ($seo->title == '' | |
75 | - && \Yii::$app->controller->id == 'site' | |
76 | - && \Yii::$app->controller->action->id == 'comments' | |
77 | -) { | |
78 | - $currentServiceId = (!empty(\Yii::$app->request->get('service_id'))) ? \Yii::$app->request->get('service_id') : 0; | |
79 | - $serviceModel = new Service(['id' => $currentServiceId]); | |
80 | - if ($currentServiceId !== 0) { | |
81 | - $serviceName = $serviceModel->language->title; | |
82 | - $seoTitleName = $this->params['breadcrumbs'][0] . ' - ' . $serviceName . ' - ' . \Yii::t('app', 'ABC short reverse'); | |
83 | - } else $seoTitleName = $this->params['breadcrumbs'][0] . ' - ' . \Yii::t('app', 'General callbacks') . ' - ' . \Yii::t('app', 'ABC short reverse'); | |
84 | - | |
85 | -} | |
86 | - | |
87 | - | |
88 | -//----------------------------------------------------------------------------------------------------------------------- | |
89 | -// Блок с микроразметкой для FB | |
90 | - | |
72 | + | |
73 | + # для автоматической генерации SEO параметров (title/description) в ситуациях, когда этих параметров нету | |
74 | + # мне нужно будет автоматически их подгенеривать, поэтому вместо $seo->title, которые является readOnly я использую эту переменную | |
75 | + $seoTitleName = $seo->title; | |
76 | + if ($seo->title == '' && \Yii::$app->controller->id == 'site' && \Yii::$app->controller->action->id == 'comments') { | |
77 | + $currentServiceId = ( !empty(\Yii::$app->request->get('service_id')) ) ? \Yii::$app->request->get( | |
78 | + 'service_id' | |
79 | + ) : 0; | |
80 | + $serviceModel = new Service([ 'id' => $currentServiceId ]); | |
81 | + if ($currentServiceId !== 0) { | |
82 | + $serviceName = $serviceModel->language->title; | |
83 | + $seoTitleName = $this->params[ 'breadcrumbs' ][ 0 ] . ' - ' . $serviceName . ' - ' . \Yii::t( | |
84 | + 'app', | |
85 | + 'ABC short reverse' | |
86 | + ); | |
87 | + } else { | |
88 | + $seoTitleName = $this->params[ 'breadcrumbs' ][ 0 ] . ' - ' . \Yii::t( | |
89 | + 'app', | |
90 | + 'General callbacks' | |
91 | + ) . ' - ' . \Yii::t('app', 'ABC short reverse'); | |
92 | + } | |
93 | + | |
94 | + } | |
95 | + | |
96 | + //----------------------------------------------------------------------------------------------------------------------- | |
97 | + // Блок с микроразметкой для FB | |
98 | + | |
91 | 99 | # $property нужно для property="og:type" FB |
92 | - switch (\Yii::$app->controller->id) | |
93 | - { | |
100 | + switch (\Yii::$app->controller->id) { | |
94 | 101 | case "site": |
95 | - $property='website'; | |
102 | + $property = 'website'; | |
96 | 103 | break; |
97 | 104 | case "blog": |
98 | - $property='article'; | |
105 | + $property = 'article'; | |
99 | 106 | break; |
100 | 107 | case 'service': |
101 | - $property='product'; | |
108 | + $property = 'product'; | |
102 | 109 | break; |
103 | 110 | default: |
104 | - $property='website'; | |
111 | + $property = 'website'; | |
105 | 112 | break; |
106 | 113 | } |
107 | - | |
108 | -$this->registerMetaTag( | |
109 | - [ | |
110 | - 'property'=>'og:description', | |
111 | - 'content' => $seo->desc, | |
112 | - ] | |
113 | -); | |
114 | -$this->registerMetaTag( | |
115 | - [ | |
116 | - 'property'=>"og:type", | |
117 | - 'content' => $property, | |
118 | - ] | |
119 | -); | |
120 | -$this->registerMetaTag( | |
121 | - [ | |
122 | - 'property'=>"og:url", | |
123 | - 'content' => Url::current(), | |
124 | - ] | |
125 | -); | |
126 | -$this->registerMetaTag( | |
127 | - [ | |
128 | - 'property'=>"og:title", | |
129 | - 'content' =>$seo->title, | |
130 | - ] | |
131 | -); | |
132 | -$this->registerMetaTag( | |
133 | - [ | |
134 | - 'name' => 'description', | |
135 | - 'content' => (\Yii::$app->controller->id == 'site' && \Yii::$app->controller->action->id == 'comments' && $seo->desc == null) ? $seoTitleName : $seo->desc, | |
136 | - ] | |
137 | -); | |
138 | - | |
139 | -//---------------------------------------------------------------------------------------------------------------------- | |
140 | - | |
141 | - | |
114 | + | |
115 | + $this->registerMetaTag( | |
116 | + [ | |
117 | + 'property' => 'og:description', | |
118 | + 'content' => $seo->desc, | |
119 | + ] | |
120 | + ); | |
121 | + $this->registerMetaTag( | |
122 | + [ | |
123 | + 'property' => "og:type", | |
124 | + 'content' => $property, | |
125 | + ] | |
126 | + ); | |
127 | + $this->registerMetaTag( | |
128 | + [ | |
129 | + 'property' => "og:url", | |
130 | + 'content' => Url::current(), | |
131 | + ] | |
132 | + ); | |
133 | + $this->registerMetaTag( | |
134 | + [ | |
135 | + 'property' => "og:title", | |
136 | + 'content' => $seo->title, | |
137 | + ] | |
138 | + ); | |
139 | + $this->registerMetaTag( | |
140 | + [ | |
141 | + 'name' => 'description', | |
142 | + 'content' => ( \Yii::$app->controller->id == 'site' && \Yii::$app->controller->action->id == 'comments' && $seo->desc == null ) ? $seoTitleName : $seo->desc, | |
143 | + ] | |
144 | + ); | |
145 | + | |
146 | + //---------------------------------------------------------------------------------------------------------------------- | |
147 | + | |
142 | 148 | $this->registerMetaTag( |
143 | 149 | [ |
144 | 150 | 'name' => 'robots', |
145 | -// 'content' => $seo->robots, | |
151 | + // 'content' => $seo->robots, | |
146 | 152 | 'content' => 'noindex,nofollow', |
147 | 153 | ] |
148 | 154 | ); |
149 | 155 | $module = \Yii::$app->getModule('feedback'); |
150 | - $aliases = Alias::find()->where(['route' => '{"0":"site/questions"}'])->indexBy('route')->andWhere(['language_id' => Language::getCurrent()->id])->asArray()->all(); | |
151 | -$commentUrl = Alias::find()->where(['route' => '{"0":"site/comments","service_id":0}'])->indexBy('route')->andWhere(['language_id' => Language::getCurrent()->id])->asArray()->all(); | |
152 | - | |
153 | - | |
154 | - | |
156 | + $aliases = Alias::find() | |
157 | + ->where([ 'route' => '{"0":"site/questions"}' ]) | |
158 | + ->indexBy('route') | |
159 | + ->andWhere([ 'language_id' => Language::getCurrent()->id ]) | |
160 | + ->asArray() | |
161 | + ->all(); | |
162 | + $commentUrl = Alias::find() | |
163 | + ->where([ 'route' => '{"0":"site/comments","service_id":0}' ]) | |
164 | + ->indexBy('route') | |
165 | + ->andWhere([ 'language_id' => Language::getCurrent()->id ]) | |
166 | + ->asArray() | |
167 | + ->all(); | |
155 | 168 | |
156 | 169 | ?> |
157 | 170 | |
158 | 171 | <?php $this->beginPage() ?> |
159 | 172 | <!DOCTYPE html > |
160 | 173 | <html xmlns="http://www.w3.org/1999/html" xmlns="http://www.w3.org/1999/html" lang="<?= \Yii::$app->language ?>"> |
161 | - <head> | |
162 | - | |
163 | - <script type="text/javascript"> | |
164 | - WebFontConfig = { | |
165 | - google: {families: [ 'Ubuntu:400,500,700' ]} | |
166 | - }; | |
167 | - (function() { | |
168 | - var wf = document.createElement('script'); | |
169 | - wf.src = ('https:' == document.location.protocol ? 'https' : 'http') + '://ajax.googleapis.com/ajax/libs/webfont/1.5.18/webfont.js'; | |
170 | - wf.type = 'text/javascript'; | |
171 | - wf.async = 'true'; | |
172 | - var s = document.getElementsByTagName('script')[ 0 ]; | |
173 | - s.parentNode.insertBefore(wf, s); | |
174 | - })(); </script> | |
175 | - | |
176 | - | |
177 | - <!-- Global site tag (gtag.js) - Google Analytics --> | |
178 | - <script async src="https://www.googletagmanager.com/gtag/js?id=UA-120861020-1"></script> | |
179 | - <script> | |
180 | - window.dataLayer = window.dataLayer || []; | |
181 | - function gtag(){dataLayer.push(arguments);} | |
182 | - gtag('js', new Date()); | |
183 | - | |
184 | - gtag('config', 'UA-120861020-1'); | |
185 | - </script> | |
186 | - <!-- Google Tag Manager --> | |
187 | - <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': | |
188 | - new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], | |
189 | - j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= | |
190 | - 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); | |
191 | - })(window,document,'script','dataLayer','GTM-N6R7982');</script> | |
192 | - <!-- End Google Tag Manager --> | |
193 | - <meta charset="<?= \Yii::$app->charset ?>"> | |
194 | - <meta name="viewport" content="width=device-width"> | |
195 | - <link type="image/x-icon" href="favicon.ico" rel="icon"> | |
196 | - <?= Html::csrfMetaTags() ?> | |
197 | - | |
198 | - | |
199 | - | |
200 | - | |
174 | + <head> | |
175 | + | |
176 | + <script type="text/javascript"> | |
177 | + WebFontConfig = { | |
178 | + google: {families: [ 'Ubuntu:400,500,700' ]} | |
179 | + }; | |
180 | + (function() { | |
181 | + var wf = document.createElement('script'); | |
182 | + wf.src = ('https:' == document.location.protocol ? 'https' : 'http') + '://ajax.googleapis.com/ajax/libs/webfont/1.5.18/webfont.js'; | |
183 | + wf.type = 'text/javascript'; | |
184 | + wf.async = 'true'; | |
185 | + var s = document.getElementsByTagName('script')[ 0 ]; | |
186 | + s.parentNode.insertBefore(wf, s); | |
187 | + })(); </script> | |
188 | + | |
189 | + | |
190 | + <!-- Global site tag (gtag.js) - Google Analytics --> | |
191 | + <script async src="https://www.googletagmanager.com/gtag/js?id=UA-120861020-1"></script> | |
192 | + <script> | |
193 | + window.dataLayer = window.dataLayer || []; | |
194 | + function gtag() { | |
195 | + dataLayer.push(arguments); | |
196 | + } | |
197 | + gtag('js', new Date()); | |
198 | + | |
199 | + gtag('config', 'UA-120861020-1'); | |
200 | + </script> | |
201 | + <!-- Google Tag Manager --> | |
202 | + <script>(function(w, d, s, l, i) { | |
203 | + w[ l ] = w[ l ] || []; | |
204 | + w[ l ].push({ | |
205 | + 'gtm.start': new Date().getTime(), | |
206 | + event: 'gtm.js' | |
207 | + }); | |
208 | + var f = d.getElementsByTagName(s)[ 0 ], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; | |
209 | + j.async = true; | |
210 | + j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; | |
211 | + f.parentNode.insertBefore(j, f); | |
212 | + })(window, document, 'script', 'dataLayer', 'GTM-N6R7982');</script> | |
213 | + <!-- End Google Tag Manager --> | |
214 | + <meta charset="<?= \Yii::$app->charset ?>"> | |
215 | + <meta name="viewport" content="width=device-width"> | |
216 | + <link type="image/x-icon" href="favicon.ico" rel="icon"> | |
217 | + <?= Html::csrfMetaTags() ?> | |
218 | + | |
219 | + | |
201 | 220 | <title><?= Html::encode($seoTitleName); ?></title> |
202 | - <?php $this->head() ?> | |
203 | - </head> | |
221 | + <?php $this->head() ?> | |
222 | + </head> | |
204 | 223 | <body id="body"> |
205 | - <!-- Google Tag Manager (noscript) --> | |
206 | - <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-N6R7982" | |
207 | - height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> | |
208 | - <!-- End Google Tag Manager (noscript) --> | |
224 | + <!-- Google Tag Manager (noscript) --> | |
225 | + <noscript> | |
226 | + <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-N6R7982" | |
227 | + height="0" width="0" style="display:none;visibility:hidden"></iframe> | |
228 | + </noscript> | |
229 | + <!-- End Google Tag Manager (noscript) --> | |
209 | 230 | <?php $this->beginBody() ?> |
210 | 231 | <!-- Google Tag Manager (noscript) --> |
211 | - <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-N6R7982" | |
212 | - height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> | |
232 | + <noscript> | |
233 | + <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-N6R7982" | |
234 | + height="0" width="0" style="display:none;visibility:hidden"></iframe> | |
235 | + </noscript> | |
213 | 236 | <!-- End Google Tag Manager (noscript) --> |
214 | - <div class="transition-loader"> | |
215 | - <div class="transition-loader-inner"> | |
216 | - <label></label> | |
217 | - <label></label> | |
218 | - <label></label> | |
219 | - <label></label> | |
220 | - <label></label> | |
221 | - <label></label> | |
222 | - </div> | |
223 | - </div> | |
237 | + <div class="transition-loader"> | |
238 | + <div class="transition-loader-inner"> | |
239 | + <label></label> | |
240 | + <label></label> | |
241 | + <label></label> | |
242 | + <label></label> | |
243 | + <label></label> | |
244 | + <label></label> | |
245 | + </div> | |
246 | + </div> | |
224 | 247 | <header id="header_" class="section-box-header"> |
225 | 248 | <div class="section-box-header-columns"> |
226 | 249 | <div class="container"> |
227 | 250 | <div class="row"> |
228 | 251 | <div class="col-xs-7 col-sm-3 col-md-2 col-lg-2 logo-wrapp"> |
229 | - | |
230 | - <a itemprop="url" content="<?=\Yii::$app->homeUrl;?>" | |
231 | - <?php if(DefaultUrl::current()!=='/site/index'): ?> | |
232 | - href= "<?php echo \frontend\helpers\Url::home(); ?>"> | |
252 | + | |
253 | + <a itemprop="url" content="<?= \Yii::$app->homeUrl; ?>" | |
254 | + <?php if ( DefaultUrl::current() !== '/site/index' ): ?> | |
255 | + href="<?php echo \frontend\helpers\Url::home(); ?>"> | |
233 | 256 | <?php else: ?> |
234 | - > | |
235 | - <?php endif;?> | |
236 | - | |
257 | + > | |
258 | + <?php endif; ?> | |
259 | + | |
237 | 260 | <?php |
238 | - if ($settings->logo != null){ | |
239 | - echo | |
240 | - "<img src='/storage/logo/".$settings->logo."' alt='".\Yii::t('app','ABC short')."' | |
241 | - title='".\Yii::t('app','ABC short')."' | |
261 | + if ($settings->logo != null) { | |
262 | + echo "<img src='/storage/logo/" . $settings->logo . "' alt='" . \Yii::t( | |
263 | + 'app', | |
264 | + 'ABC short' | |
265 | + ) . "' | |
266 | + title='" . \Yii::t('app', 'ABC short') . "' | |
242 | 267 | >"; |
243 | - }else{ | |
244 | - echo ImageHelper::set(null) | |
245 | - ->setHeight(44) | |
246 | - ->renderImage( | |
247 | - [ | |
248 | - 'alt' => $settings->name, | |
249 | - #'alt'=>\Yii::t('app','ABC short'), | |
250 | - 'title'=>\Yii::t('app','ABC short'), | |
251 | - ] | |
252 | - ); | |
253 | - } | |
254 | - | |
268 | + } else { | |
269 | + echo ImageHelper::set(null) | |
270 | + ->setHeight(44) | |
271 | + ->renderImage( | |
272 | + [ | |
273 | + 'alt' => $settings->name, | |
274 | + #'alt'=>\Yii::t('app','ABC short'), | |
275 | + 'title' => \Yii::t('app', 'ABC short'), | |
276 | + ] | |
277 | + ); | |
278 | + } | |
279 | + | |
255 | 280 | ?> |
256 | - | |
257 | - | |
281 | + | |
282 | + | |
258 | 283 | </a> |
259 | 284 | </div> |
260 | 285 | <div class="col-sm-9 col-md-10 col-lg-10 header-col"> |
... | ... | @@ -270,17 +295,17 @@ $commentUrl = Alias::find()->where(['route' => '{"0":"site/comments","service_id |
270 | 295 | <td> |
271 | 296 | <div class="phone-header new-phone-header"> |
272 | 297 | <?= $settings->phone ?> |
273 | - | |
274 | - <?php | |
275 | - # если указаны дополнительные телефоны, указываем их в выпадающем меню | |
276 | - if (!empty($settings->phone2)):?> | |
277 | - <?php $phones2 = explode(';', $settings->phone2); ?> | |
278 | - <div class="hidden-header-phone"> | |
279 | - <?php foreach ($phones2 as $soloPhone2): ?> | |
280 | - <?= Html::tag('p', $soloPhone2); ?> | |
281 | - <?php endforeach; ?> | |
282 | - </div> | |
283 | - <?php endif; ?> | |
298 | + | |
299 | + <?php | |
300 | + # если указаны дополнительные телефоны, указываем их в выпадающем меню | |
301 | + if (!empty($settings->phone2)):?> | |
302 | + <?php $phones2 = explode(';', $settings->phone2); ?> | |
303 | + <div class="hidden-header-phone"> | |
304 | + <?php foreach ($phones2 as $soloPhone2): ?> | |
305 | + <?= Html::tag('p', $soloPhone2); ?> | |
306 | + <?php endforeach; ?> | |
307 | + </div> | |
308 | + <?php endif; ?> | |
284 | 309 | </div> |
285 | 310 | </td> |
286 | 311 | </tr> |
... | ... | @@ -293,23 +318,26 @@ $commentUrl = Alias::find()->where(['route' => '{"0":"site/comments","service_id |
293 | 318 | </div> |
294 | 319 | |
295 | 320 | <div class="hidden-xs btn-header-wr"> |
296 | - <span class="btn_ modal-link" data-form="write-to"><?=\Yii::t('app', 'Make an appointment') ?></span> | |
321 | + <span class="btn_ modal-link" data-form="write-to"><?= \Yii::t('app', 'Make an appointment') ?></span> | |
297 | 322 | </div> |
298 | - | |
323 | + | |
299 | 324 | <ul class="hidden-xs hidden-sm"> |
300 | - <li><a href="/vtoroe-mnenie" class="new"><span> <?=\Yii::t('app','Second thing')?> </span></a></li> | |
301 | - <li> | |
302 | - <a href="<?= (isset($aliases['{"0":"site/questions"}'])) ? Url::to(['alias' => $aliases['{"0":"site/questions"}']]) : | |
303 | - Url::to(['site/questions']) ?>"><?= \Yii::t('app', 'Quest/Answer') ?></a></li> | |
304 | - <li> | |
305 | - <a href="<?= (isset($commentUrl['{"0":"site/comments","service_id":0}'])) ? Url::to(['/' . $commentUrl['{"0":"site/comments","service_id":0}']['value']]) : | |
306 | - Url::to(['site/comments']) ?>"><?= \Yii::t('app', 'Callbacks') ?></a></li> | |
325 | + <li><a href="/vtoroe-mnenie" class="new"><span> <?= \Yii::t('app', 'Second thing') ?> </span></a> | |
326 | + </li> | |
327 | + <li> | |
328 | + <a href="<?= ( isset($aliases[ '{"0":"site/questions"}' ]) ) ? Url::to( | |
329 | + [ 'alias' => $aliases[ '{"0":"site/questions"}' ] ] | |
330 | + ) : Url::to([ 'site/questions' ]) ?>"><?= \Yii::t('app', 'Quest/Answer') ?></a></li> | |
331 | + <li> | |
332 | + <a href="<?= ( isset($commentUrl[ '{"0":"site/comments","service_id":0}' ]) ) ? Url::to( | |
333 | + [ '/' . $commentUrl[ '{"0":"site/comments","service_id":0}' ][ 'value' ] ] | |
334 | + ) : Url::to([ 'site/comments' ]) ?>"><?= \Yii::t('app', 'Callbacks') ?></a></li> | |
307 | 335 | </ul> |
308 | -<!-- --> | |
309 | -<!-- <div class="lang-sep-wr hidden-xs hidden-sm">--> | |
310 | -<!-- --> | |
311 | -<!-- --><?php //echo LanguageWidget::widget() ?> | |
312 | -<!-- </div>--> | |
336 | + <!-- --> | |
337 | + <!-- <div class="lang-sep-wr hidden-xs hidden-sm">--> | |
338 | + <!-- --> | |
339 | + <!-- --><?php //echo LanguageWidget::widget() ?> | |
340 | + <!-- </div>--> | |
313 | 341 | |
314 | 342 | <div class="hidden-sm hidden-md hidden-lg icon_phone-header-mob btn_call"></div> |
315 | 343 | |
... | ... | @@ -334,22 +362,19 @@ $commentUrl = Alias::find()->where(['route' => '{"0":"site/comments","service_id |
334 | 362 | ]; |
335 | 363 | } |
336 | 364 | $items[] = [ |
337 | - 'label' => \Yii::t('app', 'Prices'), | |
338 | - 'url' => Url::to(['site/prices']), | |
365 | + 'label' => \Yii::t('app', 'Prices'), | |
366 | + 'url' => Url::to([ 'site/prices' ]), | |
339 | 367 | 'options' => [ |
340 | - 'class' => 'active' | |
341 | - ] | |
368 | + 'class' => 'active', | |
369 | + ], | |
342 | 370 | ]; |
343 | 371 | $items[] = [ |
344 | 372 | 'label' => \Yii::t('app', 'Package offerings'), |
345 | - 'url' => Url::to(['package/index']), | |
373 | + 'url' => Url::to([ 'package/index' ]), | |
346 | 374 | ]; |
347 | - | |
348 | - | |
349 | - | |
350 | - | |
375 | + | |
351 | 376 | ?> |
352 | - | |
377 | + | |
353 | 378 | <?php echo Nav::widget( |
354 | 379 | [ |
355 | 380 | 'items' => $items, |
... | ... | @@ -359,7 +384,7 @@ $commentUrl = Alias::find()->where(['route' => '{"0":"site/comments","service_id |
359 | 384 | </nav> |
360 | 385 | <div class="mobile-menu-hidden" style="display: none;"> |
361 | 386 | <div class="close-lang-mob"> |
362 | - | |
387 | + | |
363 | 388 | <div class="close-mobile-menu"></div> |
364 | 389 | </div> |
365 | 390 | <div class="mobi-menu-catalog"> |
... | ... | @@ -367,12 +392,12 @@ $commentUrl = Alias::find()->where(['route' => '{"0":"site/comments","service_id |
367 | 392 | $itemsMobile = []; |
368 | 393 | foreach ($services as $service) { |
369 | 394 | /** |
370 | - * @var Service $service; | |
395 | + * @var Service $service ; | |
371 | 396 | */ |
372 | 397 | $servicesChild = []; |
373 | 398 | foreach ($service->services as $item) { |
374 | 399 | $level = []; |
375 | - foreach ($item->services as $child){ | |
400 | + foreach ($item->services as $child) { | |
376 | 401 | $level[] = [ |
377 | 402 | 'label' => $child->title, |
378 | 403 | 'url' => Url::to([ 'alias' => $child->language->alias ]), |
... | ... | @@ -391,15 +416,15 @@ $commentUrl = Alias::find()->where(['route' => '{"0":"site/comments","service_id |
391 | 416 | ]; |
392 | 417 | } |
393 | 418 | $itemsMobile[] = [ |
394 | - 'label' => \Yii::t('app', 'Prices'), | |
395 | - 'url' => Url::to(['site/prices']), | |
419 | + 'label' => \Yii::t('app', 'Prices'), | |
420 | + 'url' => Url::to([ 'site/prices' ]), | |
396 | 421 | 'options' => [ |
397 | - 'class' => 'active' | |
398 | - ] | |
422 | + 'class' => 'active', | |
423 | + ], | |
399 | 424 | ]; |
400 | 425 | $itemsMobile[] = [ |
401 | 426 | 'label' => \Yii::t('app', 'Package offerings'), |
402 | - 'url' => Url::to(['package/index']), | |
427 | + 'url' => Url::to([ 'package/index' ]), | |
403 | 428 | ] |
404 | 429 | ?> |
405 | 430 | <?php echo Nav::widget( |
... | ... | @@ -413,11 +438,12 @@ $commentUrl = Alias::find()->where(['route' => '{"0":"site/comments","service_id |
413 | 438 | </div> |
414 | 439 | <div class="menu-second-mob"> |
415 | 440 | <ul class="footer-menu"> |
416 | - | |
441 | + | |
417 | 442 | <li><a href="<?= Url::to([ 'site/contact' ]) ?>"><?= \Yii::t('app', 'Contacts') ?></a></li> |
418 | 443 | <li><a href="/vtoroe-mnenie" class="new"><span><?= \Yii::t('app', 'Second thing') ?></span></a></li> |
419 | - <li><a href="<?=(isset($aliases['{"0":"site/questions"}'])) ? | |
420 | - Url::to(['alias' => $aliases['{"0":"site/questions"}']]) : Url::to(['site/questions'])?>"> | |
444 | + <li><a href="<?= ( isset($aliases[ '{"0":"site/questions"}' ]) ) ? Url::to( | |
445 | + [ 'alias' => $aliases[ '{"0":"site/questions"}' ] ] | |
446 | + ) : Url::to([ 'site/questions' ]) ?>"> | |
421 | 447 | <?= \Yii::t('app', 'Quest/Answer') ?></a></li> |
422 | 448 | <li><a href="#"><?= \Yii::t('app', 'Callbacks') ?></a></li> |
423 | 449 | </ul> |
... | ... | @@ -425,78 +451,80 @@ $commentUrl = Alias::find()->where(['route' => '{"0":"site/comments","service_id |
425 | 451 | |
426 | 452 | <div class="mob-menu-btns"> |
427 | 453 | <div class="style mob-menu-write"> |
428 | - <span class="btn_ modal-link" data-form="write-to"><?= \Yii::t('app', 'Make an appointment') ?></span> | |
454 | + <span class="btn_ modal-link" data-form="write-to"><?= \Yii::t('app', 'Make an appointment') ?></span> | |
429 | 455 | </div> |
430 | 456 | <div class="style mob-menu-callback"> |
431 | 457 | <p><?= $settings->phone ?></p> |
432 | - <span class="modal-link" data-form="callback"><?=\Yii::t('app','Callback');?></span> | |
458 | + <span class="modal-link" data-form="callback"><?= \Yii::t('app', 'Callback'); ?></span> | |
433 | 459 | </div> |
434 | 460 | </div> |
435 | 461 | </div> |
436 | 462 | </header> |
437 | - | |
438 | - <?php #content должен быть в main.php ?> | |
463 | + | |
464 | + <?php #content должен быть в main.php ?> | |
439 | 465 | <div id="content_" class="section-box-content"> |
440 | 466 | <!-- start breadcrumbs --> |
441 | - <?php if (!empty($this->params['breadcrumbs'])) {?> | |
442 | - <section class="section-breadcrumb"> | |
443 | - <div class="container"> | |
444 | - <div class="row"> | |
445 | - <div class="col-xs-12 col-sm-12 breadcrumb-wrapp"> | |
446 | - <?=SeoBreadcrumbs::widget([ | |
447 | - 'links' => isset($this->params[ 'breadcrumbs' ]) ? $this->params[ 'breadcrumbs' ] : [], | |
448 | - ])?> | |
449 | - </div> | |
450 | - </div> | |
451 | - </section> | |
452 | - <?php }?> | |
467 | + <?php if (!empty($this->params[ 'breadcrumbs' ])) { ?> | |
468 | + <section class="section-breadcrumb"> | |
469 | + <div class="container"> | |
470 | + <div class="row"> | |
471 | + <div class="col-xs-12 col-sm-12 breadcrumb-wrapp"> | |
472 | + <?= SeoBreadcrumbs::widget( | |
473 | + [ | |
474 | + 'links' => isset($this->params[ 'breadcrumbs' ]) ? $this->params[ 'breadcrumbs' ] : [], | |
475 | + ] | |
476 | + ) ?> | |
477 | + </div> | |
478 | + </div> | |
479 | + </section> | |
480 | + <?php } ?> | |
453 | 481 | <?php #если не главная выводить сюда |
454 | - # end breadcrumbs ?> | |
455 | - | |
456 | - <?php #start content ?> | |
457 | - | |
482 | + # end breadcrumbs ?> | |
483 | + | |
484 | + <?php #start content ?> | |
485 | + | |
458 | 486 | <?= $content ?> |
459 | 487 | <?php # end content ?> |
460 | - | |
461 | - | |
462 | - <div class="section-box-6"> | |
463 | - <div id="map_canvas"></div> | |
464 | - <div style="display: none" class="adress-map" data-zoom="14" data-start-lat="<?=$settings->lat?>" data-start-lng="<?=$settings->lon?>"> | |
465 | - <span data-lat="<?=$settings->lat?>" data-lng="<?=$settings->lon?>"></span> | |
466 | - </div> | |
467 | - <div class="container"> | |
468 | - <div class="row"> | |
469 | - <div class="col-xs-12 col-sm-5 col-sm-offset-7 col-md-4 col-md-offset-8 contacts-mobile-fix" style="display: table"> | |
470 | - <div class="map-info-wrapp"> | |
471 | - <div class="map-adress"><?=$settings->address;?></div> | |
472 | - <?php if (!empty($settings->phone) or !empty($settings->phone2)){ | |
473 | - $phones = array_merge(explode(';', $settings->phone2) , [$settings->phone]); | |
474 | - ?> | |
475 | - <div class="ico-map"> | |
476 | - <img src="/images/map/phone-map.svg" alt=""> | |
477 | - <img class="mob-ico-map" style="display: none" src="/images/map/phone-map-1-grey.svg" alt=""> | |
478 | - </div> | |
479 | - <div class="map-phone"> | |
480 | - <?php foreach ($phones as $phone){?> | |
481 | - <p><?=$phone?></p> | |
482 | - <?php }?> | |
483 | - </div> | |
484 | - <?php } ?> | |
485 | - <?php if (!empty($settings->email)){?> | |
486 | - <div class="ico-map ico-map-mail"> | |
487 | - <img src="/images/map/mail-map.svg" alt=""> | |
488 | - <img class="mob-ico-map" style="display: none" src="/images/map/mail-map-1-grey.svg" alt=""> | |
489 | - </div> | |
490 | - <div class="map-mail"> | |
491 | - <a href="mailto:<?=$settings->email?>"><?=$settings->email?></a> | |
492 | - </div> | |
493 | - <?php } ?> | |
494 | - </div> | |
488 | + | |
489 | + | |
490 | + <div class="section-box-6"> | |
491 | + <div id="map_canvas"></div> | |
492 | + <div style="display: none" class="adress-map" data-zoom="14" data-start-lat="<?= $settings->lat ?>" data-start-lng="<?= $settings->lon ?>"> | |
493 | + <span data-lat="<?= $settings->lat ?>" data-lng="<?= $settings->lon ?>"></span> | |
494 | + </div> | |
495 | + <div class="container"> | |
496 | + <div class="row"> | |
497 | + <div class="col-xs-12 col-sm-5 col-sm-offset-7 col-md-4 col-md-offset-8 contacts-mobile-fix" style="display: table"> | |
498 | + <div class="map-info-wrapp"> | |
499 | + <div class="map-adress"><?= $settings->address; ?></div> | |
500 | + <?php if (!empty($settings->phone) or !empty($settings->phone2)) { | |
501 | + $phones = array_merge(explode(';', $settings->phone2), [ $settings->phone ]); | |
502 | + ?> | |
503 | + <div class="ico-map"> | |
504 | + <img src="/images/map/phone-map.svg" alt=""> | |
505 | + <img class="mob-ico-map" style="display: none" src="/images/map/phone-map-1-grey.svg" alt=""> | |
495 | 506 | </div> |
496 | - </div> | |
507 | + <div class="map-phone"> | |
508 | + <?php foreach ($phones as $phone) { ?> | |
509 | + <p><?= $phone ?></p> | |
510 | + <?php } ?> | |
511 | + </div> | |
512 | + <?php } ?> | |
513 | + <?php if (!empty($settings->email)) { ?> | |
514 | + <div class="ico-map ico-map-mail"> | |
515 | + <img src="/images/map/mail-map.svg" alt=""> | |
516 | + <img class="mob-ico-map" style="display: none" src="/images/map/mail-map-1-grey.svg" alt=""> | |
517 | + </div> | |
518 | + <div class="map-mail"> | |
519 | + <a href="mailto:<?= $settings->email ?>"><?= $settings->email ?></a> | |
520 | + </div> | |
521 | + <?php } ?> | |
522 | + </div> | |
497 | 523 | </div> |
524 | + </div> | |
498 | 525 | </div> |
499 | - | |
526 | + </div> | |
527 | + | |
500 | 528 | </div> |
501 | 529 | |
502 | 530 | <footer id="footer_" class="section-box-footer"> |
... | ... | @@ -506,18 +534,19 @@ $commentUrl = Alias::find()->where(['route' => '{"0":"site/comments","service_id |
506 | 534 | <div class="row"> |
507 | 535 | <div class="col-xs-12 hidden-sm hidden-md hidden-lg" style="text-align: center; margin-bottom: 8px"> |
508 | 536 | <div class="btn-footer-wr"> |
509 | - <span class="btn_ modal-link" data-form="write-to"><?= \Yii::t('app', 'Make an appointment') ?></span> | |
537 | + <span class="btn_ modal-link" data-form="write-to"><?= \Yii::t('app', 'Make an appointment') ?></span> | |
510 | 538 | </div> |
511 | 539 | </div> |
512 | 540 | |
513 | 541 | <div class="col-xs-9 col-sm-2"> |
514 | 542 | <ul class="footer-menu"> |
515 | - <li><a href="<?=Url::to(['site/about'])?>"><?=\Yii::t('app','About us')?></a></li> | |
516 | - <li><a href="<?= Url::to([ 'site/contact' ]);?>" ><?=\Yii::t('app','Contacts');?></a></li> | |
517 | - <li><a href="/vtoroe-mnenie" class="new"><span><?=\Yii::t('app','Second thing');?></span></a></li> | |
518 | - <li><a href="<?=(isset($aliases['{"0":"site/questions"}'])) ? | |
519 | - Url::to(['alias' => $aliases['{"0":"site/questions"}']]) : Url::to(['site/questions'])?>"><?=\Yii::t('app','Quest/Answer');?></a></li> | |
520 | - <li><a href="<?=Url::to(['site/comments'])?>"><?=\Yii::t('app','Callbacks');?></a></li> | |
543 | + <li><a href="<?= Url::to([ 'site/about' ]) ?>"><?= \Yii::t('app', 'About us') ?></a></li> | |
544 | + <li><a href="<?= Url::to([ 'site/contact' ]); ?>"><?= \Yii::t('app', 'Contacts'); ?></a></li> | |
545 | + <li><a href="/vtoroe-mnenie" class="new"><span><?= \Yii::t('app', 'Second thing'); ?></span></a></li> | |
546 | + <li><a href="<?= ( isset($aliases[ '{"0":"site/questions"}' ]) ) ? Url::to( | |
547 | + [ 'alias' => $aliases[ '{"0":"site/questions"}' ] ] | |
548 | + ) : Url::to([ 'site/questions' ]) ?>"><?= \Yii::t('app', 'Quest/Answer'); ?></a></li> | |
549 | + <li><a href="<?= Url::to([ 'site/comments' ]) ?>"><?= \Yii::t('app', 'Callbacks'); ?></a></li> | |
521 | 550 | </ul> |
522 | 551 | </div> |
523 | 552 | |
... | ... | @@ -542,23 +571,25 @@ $commentUrl = Alias::find()->where(['route' => '{"0":"site/comments","service_id |
542 | 571 | |
543 | 572 | <div class="col-xs-3 col-sm-3"> |
544 | 573 | <ul class="seti-list"> |
545 | - <?php if (!empty($settings->facebook)){?> | |
546 | - <li><a target="_blank" href="<?=$settings->facebook?>"><img src="/images/s-1.svg" alt=""></a></li> | |
547 | - <?php } ?> | |
548 | - <?php if (!empty($settings->google)){?> | |
549 | - <li><a target="_blank" href="<?=$settings->google?>"><img src="/images/s-2.svg" alt=""></a></li> | |
550 | - <?php } ?> | |
551 | - <?php if (!empty($settings->twitter)){?> | |
552 | - <li><a target="_blank" href="<?=$settings->twitter ?>"><img src="/images/s-3.svg" alt=""></a></li> | |
553 | - <?php }?> | |
574 | + <?php if (!empty($settings->facebook)) { ?> | |
575 | + <li><a target="_blank" href="<?= $settings->facebook ?>"><img src="/images/s-1.svg" alt=""></a> | |
576 | + </li> | |
577 | + <?php } ?> | |
578 | + <?php if (!empty($settings->google)) { ?> | |
579 | + <li><a target="_blank" href="<?= $settings->google ?>"><img src="/images/s-2.svg" alt=""></a></li> | |
580 | + <?php } ?> | |
581 | + <?php if (!empty($settings->twitter)) { ?> | |
582 | + <li><a target="_blank" href="<?= $settings->twitter ?>"><img src="/images/s-3.svg" alt=""></a> | |
583 | + </li> | |
584 | + <?php } ?> | |
554 | 585 | </ul> |
555 | 586 | </div> |
556 | 587 | </div> |
557 | 588 | <div class="row"> |
558 | 589 | <div class="col-xs-12 col-sm-12 studio-wrapp"> |
559 | - <div class="all-rights-txt">© <?=\Yii::t('app','All rights reserved');?> , 2018. ABClinic</div> | |
590 | + <div class="all-rights-txt">© <?= \Yii::t('app', 'All rights reserved'); ?> , 2018. ABClinic</div> | |
560 | 591 | <div class="link-studio"> |
561 | - <a href="http://artweb.ua"><?=\Yii::t('app','Creating sites');?></a> | |
592 | + <a href="http://artweb.ua"><?= \Yii::t('app', 'Creating sites'); ?></a> | |
562 | 593 | </div> |
563 | 594 | </div> |
564 | 595 | </div> |
... | ... | @@ -569,182 +600,212 @@ $commentUrl = Alias::find()->where(['route' => '{"0":"site/comments","service_id |
569 | 600 | <div style="display: none;" class="btn_up"></div> |
570 | 601 | <div style="display: none" class="btn_call_close"></div> |
571 | 602 | </footer> |
572 | -<?php if (!empty($settings->phone) or !empty($settings->phone2)){ | |
573 | - $phones = array_merge(explode(';', $settings->phone2) , [$settings->phone]); ?> | |
574 | - <div class="call-mobile-wr" style="display: none;"> | |
575 | - <div class="call-mobile"> | |
576 | - <div class="call-mobile-td"> | |
577 | - <?php foreach ($phones as $phone){?> | |
578 | - <div class="button-call-mob"> | |
579 | - <a class="button-call_" href="tel:<?= $settings->phone ?>"> | |
580 | - <span><?= $phone ?></span> | |
581 | - </a> | |
582 | - </div> | |
583 | - <?php } ?> | |
584 | - | |
585 | - <div class="button-call-mob"> | |
586 | - <a class="call-sms" href="sms:<?= $settings->phone ?>"><?=\Yii::t('app','Send SMS');?></a> | |
603 | + <?php if (!empty($settings->phone) or !empty($settings->phone2)) { | |
604 | + $phones = array_merge(explode(';', $settings->phone2), [ $settings->phone ]); ?> | |
605 | + <div class="call-mobile-wr" style="display: none;"> | |
606 | + <div class="call-mobile"> | |
607 | + <div class="call-mobile-td"> | |
608 | + <?php foreach ($phones as $phone) { ?> | |
609 | + <div class="button-call-mob"> | |
610 | + <a class="button-call_" href="tel:<?= $settings->phone ?>"> | |
611 | + <span><?= $phone ?></span> | |
612 | + </a> | |
613 | + </div> | |
614 | + <?php } ?> | |
615 | + | |
616 | + <div class="button-call-mob"> | |
617 | + <a class="call-sms" href="sms:<?= $settings->phone ?>"><?= \Yii::t('app', 'Send SMS'); ?></a> | |
618 | + </div> | |
619 | + <div class="button-call-mob"> | |
620 | + <a class="call-contact" href="/contacts/abclinic.vcf"><?= \Yii::t('app', 'Add to contacts'); ?></a> | |
621 | + </div> | |
622 | + </div> | |
587 | 623 | </div> |
588 | - <div class="button-call-mob"> | |
589 | - <a class="call-contact" href="/contacts/abclinic.vcf"><?=\Yii::t('app','Add to contacts');?></a></div> | |
590 | 624 | </div> |
591 | - </div> | |
592 | - </div> | |
593 | - <?php }?> | |
625 | + <?php } ?> | |
594 | 626 | <div id="overlay" style="display: none;"></div> |
595 | 627 | |
596 | -<!-- --><?php | |
597 | -// $module = \Yii::$app->getModule('feedback'); | |
598 | -// ArtboxModalWidget::begin([ | |
599 | -// 'modalTagOptions' => [ | |
600 | -// 'id' => 'callback' | |
601 | -// ], | |
602 | -// 'titleTagOptions' => [ | |
603 | -// 'class' => 'style form-title' | |
604 | -// ], | |
605 | -// 'headerText' => \Yii::t('app', 'Callback'), | |
606 | -// 'closeTagButton' => 'span', | |
607 | -// 'closeTagContent' => '', | |
608 | -// 'closeButtonOptions' => [ | |
609 | -// 'id' => 'modal_close' | |
610 | -// ] | |
611 | -// ]); | |
612 | -// | |
613 | -// $module->renderForm($this); | |
614 | -// | |
615 | -// ArtboxModalWidget::end(); | |
616 | -// ?> | |
617 | - | |
618 | - <div id="callback" class=" forms_ " style="display: none;"> | |
628 | + <!-- --><?php | |
629 | + // $module = \Yii::$app->getModule('feedback'); | |
630 | + // ArtboxModalWidget::begin([ | |
631 | + // 'modalTagOptions' => [ | |
632 | + // 'id' => 'callback' | |
633 | + // ], | |
634 | + // 'titleTagOptions' => [ | |
635 | + // 'class' => 'style form-title' | |
636 | + // ], | |
637 | + // 'headerText' => \Yii::t('app', 'Callback'), | |
638 | + // 'closeTagButton' => 'span', | |
639 | + // 'closeTagContent' => '', | |
640 | + // 'closeButtonOptions' => [ | |
641 | + // 'id' => 'modal_close' | |
642 | + // ] | |
643 | + // ]); | |
644 | + // | |
645 | + // $module->renderForm($this); | |
646 | + // | |
647 | + // ArtboxModalWidget::end(); | |
648 | + // ?> | |
649 | + | |
650 | + <div id="callback" class=" forms_ " style="display: none;"> | |
619 | 651 | <div class="style title-callback">Записаться на прием</div> |
620 | - <form action=""> | |
621 | - <div class="input-wr phones_mask required"> | |
622 | - <label class="control-label" for="feedback-phone">Телефон</label> | |
623 | - <input type="text" id="feedback-phone" placeholder="+38(0__)___-__-__"> | |
624 | - </div> | |
625 | - <div class="input-wr"> | |
626 | - <div class="style callback-params-title">Когда вам удобно перезвонить?</div> | |
627 | - <div class="style radio_custom"> | |
628 | - <input type="radio" id="order-delivery_id1" name="qwerty" value="1" checked=""> | |
629 | - <label for="order-delivery_id1">В течение 30 минут</label> | |
630 | - </div> | |
631 | - | |
632 | - <div class="style radio_custom"> | |
633 | - <input type="radio" id="order-delivery_id2" name="qwerty" value="1"> | |
634 | - <label for="order-delivery_id2">с 9:00 до 12:00</label> | |
635 | - </div> | |
636 | - | |
637 | - <div class="style radio_custom"> | |
638 | - <input type="radio" id="order-delivery_id3" name="qwerty" value="1"> | |
639 | - <label for="order-delivery_id3">с 12:00 до 18:00</label> | |
640 | - </div> | |
641 | - | |
642 | - <div class="style radio-callback-border"></div> | |
643 | - </div> | |
644 | - <div class="input-wr sidebar_checks"> | |
645 | - <input type="checkbox" id="loginform-rememberme" name="LoginForm[rememberMe]" value="1" checked=""> | |
646 | - <label class="control-label" for="loginform-rememberme">Даю согласие на хранение и обработку персональных данных</label> | |
647 | - </div> | |
648 | - <div class="button-wr"> | |
649 | - <div class="close-callback"><span id="modal_close">Закрыть окно</span></div> | |
650 | - <button type="submit">Отправить</button> | |
651 | - </div> | |
652 | - </form> | |
653 | - </div> | |
654 | - | |
655 | - <?php | |
656 | - /* @var \artbox\core\forms\Module $moduleVisit*/ | |
657 | - $moduleVisit = \Yii::$app->getModule('visit'); | |
658 | - if (isset($this->params['entity']) and isset($this->params['entity_id'])){ | |
659 | - $moduleVisit->inputOptions = array_merge($moduleVisit->inputOptions, ['entity' => [ | |
660 | - 'type' => 'hiddenInput', | |
661 | - 'options' => ['value' => $this->params['entity']], | |
662 | - ], | |
663 | - 'entity_id' => [ | |
664 | - 'type' => 'hiddenInput', | |
665 | - 'options' => ['value' => $this->params['entity_id']], | |
666 | - ] | |
667 | - ]); | |
668 | - } | |
669 | - ArtboxModalWidget::begin([ | |
670 | - 'modalTagOptions' => [ | |
671 | - 'id' => 'write-to' | |
672 | - ], | |
673 | - 'titleTagOptions' => [ | |
674 | - 'class' => 'style form-title' | |
675 | - ], | |
676 | - 'headerText' => \Yii::t('app', 'Make an appointment'), | |
677 | - 'closeTagButton' => 'span', | |
678 | - 'closeTagContent' => '', | |
679 | - 'closeButtonOptions' => [ | |
680 | - 'id' => 'modal_close' | |
681 | - ] | |
682 | - ]); | |
683 | - | |
684 | - $moduleVisit->renderForm($this); | |
685 | - | |
686 | - ArtboxModalWidget::end(); | |
687 | - ?> | |
652 | + <?php | |
653 | + $model = new Feedback(['agree' => 1, 'time' => 1]); | |
654 | + $model->scenario = Feedback::SCENARIO_CALLBACK; | |
655 | + $form = ActiveForm::begin([ 'action' => 'site/callback', 'id' => 'callback-form' ]); ?> | |
656 | + <div class="input-wr phones_mask required"> | |
657 | + <?= $form->field($model, 'phone') | |
658 | + ->textInput([ 'placeholder' => '+38(0__)___-__-__' ]) | |
659 | + ->label('Телефон') ?> | |
660 | + </div> | |
661 | + <div class="input-wr"> | |
662 | + <div class="style callback-params-title">Когда вам удобно перезвонить?</div> | |
663 | + <?= $form->field($model, 'time') | |
664 | + ->radioList( | |
665 | + [ | |
666 | + Feedback::DURING_30_MIN => 'В течение 30 минут', | |
667 | + Feedback::FROM_9_12 => 'с 9:00 до 12:00', | |
668 | + Feedback::FROM_12_18 => 'с 12:00 до 18:00', | |
669 | + ], | |
670 | + [ | |
671 | + 'item' => function ($index, $label, $name, $checked, $value) { | |
672 | + $check = $checked ? ' checked="checked"' : ''; | |
673 | + return '<div class="style radio_custom"><input id="time_'.$value.'" type="radio" name="'.$name.'" value="'.$value.'" '.$check.'><label for="time_'.$value.'">'.$label.'</label></div>'; | |
674 | + }, | |
675 | + ] | |
676 | + )->label(false); ?> | |
677 | + | |
678 | + <!-- <div class="style radio_custom">--> | |
679 | + <!-- <input type="radio" id="order-delivery_id1" name="qwerty" value="1" checked="">--> | |
680 | + <!-- <label for="order-delivery_id1">В течение 30 минут</label>--> | |
681 | + <!-- </div>--> | |
682 | + <!----> | |
683 | + <!-- <div class="style radio_custom">--> | |
684 | + <!-- <input type="radio" id="order-delivery_id2" name="qwerty" value="1">--> | |
685 | + <!-- <label for="order-delivery_id2">с 9:00 до 12:00</label>--> | |
686 | + <!-- </div>--> | |
687 | + <!----> | |
688 | + <!-- <div class="style radio_custom">--> | |
689 | + <!-- <input type="radio" id="order-delivery_id3" name="qwerty" value="1">--> | |
690 | + <!-- <label for="order-delivery_id3">с 12:00 до 18:00</label>--> | |
691 | + <!-- </div>--> | |
692 | + | |
693 | + <div class="style radio-callback-border"></div> | |
694 | + </div> | |
688 | 695 | |
696 | + <div class="input-wr sidebar_checks"> | |
697 | + <?= $form->field( | |
698 | + $model, | |
699 | + 'agree', | |
700 | + [ | |
701 | + 'template' => '{input}{label}', | |
702 | + ] | |
703 | + ) | |
704 | + ->checkbox([], false) | |
705 | + ->label(\Yii::t('app', 'Даю согласие на хранение и обработку персональных данных')); ?> | |
706 | +<!-- <input type="checkbox" id="loginform-rememberme" name="LoginForm[rememberMe]" value="1" checked="">--> | |
707 | +<!-- <label class="control-label" for="loginform-rememberme">Даю согласие на хранение и обработку персональных данных</label>--> | |
708 | + </div> | |
709 | + <div class="button-wr"> | |
710 | + <div class="close-callback"><span id="modal_close">Закрыть окно</span></div> | |
711 | + <button type="submit">Отправить</button> | |
712 | + </div> | |
713 | + <?php ActiveForm::end() ?> | |
714 | + </div> | |
715 | + | |
716 | + <?php | |
717 | + /* @var \artbox\core\forms\Module $moduleVisit */ | |
718 | + $moduleVisit = \Yii::$app->getModule('visit'); | |
719 | + if (isset($this->params[ 'entity' ]) and isset($this->params[ 'entity_id' ])) { | |
720 | + $moduleVisit->inputOptions = array_merge( | |
721 | + $moduleVisit->inputOptions, | |
722 | + [ | |
723 | + 'entity' => [ | |
724 | + 'type' => 'hiddenInput', | |
725 | + 'options' => [ 'value' => $this->params[ 'entity' ] ], | |
726 | + ], | |
727 | + 'entity_id' => [ | |
728 | + 'type' => 'hiddenInput', | |
729 | + 'options' => [ 'value' => $this->params[ 'entity_id' ] ], | |
730 | + ], | |
731 | + ] | |
732 | + ); | |
733 | + } | |
734 | + ArtboxModalWidget::begin( | |
735 | + [ | |
736 | + 'modalTagOptions' => [ | |
737 | + 'id' => 'write-to', | |
738 | + ], | |
739 | + 'titleTagOptions' => [ | |
740 | + 'class' => 'style form-title', | |
741 | + ], | |
742 | + 'headerText' => \Yii::t('app', 'Make an appointment'), | |
743 | + 'closeTagButton' => 'span', | |
744 | + 'closeTagContent' => '', | |
745 | + 'closeButtonOptions' => [ | |
746 | + 'id' => 'modal_close', | |
747 | + ], | |
748 | + ] | |
749 | + ); | |
750 | + | |
751 | + $moduleVisit->renderForm($this); | |
752 | + | |
753 | + ArtboxModalWidget::end(); | |
754 | + ?> | |
755 | + | |
689 | 756 | <div id="success_form" style="display: none;"> |
690 | 757 | <span id="modal_close"></span> |
691 | - <div class="txt-success"><span><?=\Yii::t('app','Thanks for request')?></span> | |
692 | - <p><?=Yii::t('app','We`ll call you later')?>.</p></div> | |
758 | + <div class="txt-success"><span><?= \Yii::t('app', 'Thanks for request') ?></span> | |
759 | + <p><?= Yii::t('app', 'We`ll call you later') ?>.</p></div> | |
693 | 760 | </div> |
694 | - <?php | |
695 | - //---------------------------------------------------------------------------------------- | |
696 | - // микроразметка организации | |
697 | - | |
698 | - | |
699 | - /** | |
700 | - * <script type="application/ld+json"> | |
701 | - { | |
702 | - "@context": "http://schema.org", | |
703 | - "@type": "Organization", | |
704 | - "url": "http://www.your-company-site.com", | |
705 | - "logo": "http://www.example.com/logo.png", | |
706 | - "contactPoint": [{ | |
707 | - "@type": "ContactPoint", | |
708 | - "telephone": "+1-401-555-1212", | |
709 | - "contactType": "customer service" | |
710 | - }] | |
711 | - } | |
712 | - </script> | |
713 | - */ | |
714 | - | |
715 | - $layoutMicrodata= | |
716 | - [ | |
717 | - 'context'=> 'http://schema.org/', | |
718 | - 'type'=> 'Organization', | |
719 | - 'url'=>Url::home(true), | |
720 | - #'logo'=>'http://www.example.com/logo.png', | |
721 | - 'logo'=>Url::home(true)."storage/logo/".$settings->logo, | |
722 | - 'contactPoint'=>[ | |
723 | - '@type'=>'ContactPoint', | |
724 | - 'contactType'=>"customer service" | |
725 | - ], | |
726 | - | |
727 | - ]; | |
728 | - | |
729 | - if(isset($phones[0])) { | |
730 | - $layoutMicrodata['contactPoint']['telephone'] = "+38" . $phones[0]; | |
731 | - } | |
732 | - | |
733 | - | |
734 | - | |
735 | - $settings->email; | |
736 | - $microdata=new MicrodataFabric(); | |
737 | - $pageMicrodata=$microdata::createJsonFromOrganization($layoutMicrodata)->toJson(); | |
738 | - echo $pageMicrodata | |
739 | - | |
740 | - | |
741 | - | |
742 | - | |
743 | - ?> | |
744 | - | |
745 | - <?php # выводить если главная страница ?> | |
746 | - | |
747 | - | |
761 | + <?php | |
762 | + //---------------------------------------------------------------------------------------- | |
763 | + // микроразметка организации | |
764 | + | |
765 | + /** | |
766 | + * <script type="application/ld+json"> | |
767 | + * { | |
768 | + * "@context": "http://schema.org", | |
769 | + * "@type": "Organization", | |
770 | + * "url": "http://www.your-company-site.com", | |
771 | + * "logo": "http://www.example.com/logo.png", | |
772 | + * "contactPoint": [{ | |
773 | + * "@type": "ContactPoint", | |
774 | + * "telephone": "+1-401-555-1212", | |
775 | + * "contactType": "customer service" | |
776 | + * }] | |
777 | + * } | |
778 | + * </script> | |
779 | + */ | |
780 | + | |
781 | + $layoutMicrodata = [ | |
782 | + 'context' => 'http://schema.org/', | |
783 | + 'type' => 'Organization', | |
784 | + 'url' => Url::home(true), | |
785 | + #'logo'=>'http://www.example.com/logo.png', | |
786 | + 'logo' => Url::home(true) . "storage/logo/" . $settings->logo, | |
787 | + 'contactPoint' => [ | |
788 | + '@type' => 'ContactPoint', | |
789 | + 'contactType' => "customer service", | |
790 | + ], | |
791 | + | |
792 | + ]; | |
793 | + | |
794 | + if (isset($phones[ 0 ])) { | |
795 | + $layoutMicrodata[ 'contactPoint' ][ 'telephone' ] = "+38" . $phones[ 0 ]; | |
796 | + } | |
797 | + | |
798 | + $settings->email; | |
799 | + $microdata = new MicrodataFabric(); | |
800 | + $pageMicrodata = $microdata::createJsonFromOrganization($layoutMicrodata) | |
801 | + ->toJson(); | |
802 | + echo $pageMicrodata | |
803 | + | |
804 | + ?> | |
805 | + | |
806 | + <?php # выводить если главная страница ?> | |
807 | + | |
808 | + | |
748 | 809 | <?php $this->endBody() ?> |
749 | 810 | </body> |
750 | 811 | </html> | ... | ... |
frontend/web/js/script.js
... | ... | @@ -485,7 +485,24 @@ $(document).ready(function() { |
485 | 485 | } |
486 | 486 | }); |
487 | 487 | |
488 | + $(document).on('submit', '#callback-form', function(e) { | |
489 | + e.preventDefault(); | |
490 | + e.stopImmediatePropagation(); | |
491 | + $.post($(this) | |
492 | + .attr("action"), $(this) | |
493 | + .serialize(), function(data) { | |
494 | + document.getElementById("callback-form") | |
495 | + .reset(); | |
496 | + var data_ = $("#callback-form") | |
497 | + .data('yiiActiveForm'); | |
498 | + data.validated = false; | |
499 | + success() | |
500 | + }) | |
501 | + .fail(); | |
502 | + }); | |
488 | 503 | }); |
504 | + | |
505 | + | |
489 | 506 | jQuery.fn.load = function(callback) { |
490 | 507 | $(window).on("load", callback) |
491 | 508 | }; | ... | ... |