Commit 43a2405958e55842a541140aec4965e763901e87

Authored by Anastasia
1 parent 6dd77cde

- servives

- prices
- disable artboxmodal css
common/models/Service.php
@@ -151,6 +151,14 @@ class Service extends ActiveRecord @@ -151,6 +151,14 @@ class Service extends ActiveRecord
151 } 151 }
152 152
153 public function getPrices(){ 153 public function getPrices(){
154 - return$this->hasMany(Price::className(), ['id' => 'service_id']); 154 + return $this->hasMany(Price::className(), ['service_id' => 'id']);
  155 + }
  156 +
  157 + public function getComments(){
  158 + return $this->hasMany(Comment::className(), ['service_id' => 'id']);
  159 + }
  160 +
  161 + public function getQuestions(){
  162 + return $this->hasMany(Question::className(), ['service_id' => 'id']);
155 } 163 }
156 } 164 }
console/migrations/m180524_152319_create_price_table.php
@@ -16,7 +16,7 @@ class m180524_152319_create_price_table extends Migration @@ -16,7 +16,7 @@ class m180524_152319_create_price_table extends Migration
16 'id' => $this->primaryKey(), 16 'id' => $this->primaryKey(),
17 'service_id' => $this->integer(), 17 'service_id' => $this->integer(),
18 'price' => $this->integer(), 18 'price' => $this->integer(),
19 - 'status' => $this->integer(), 19 + 'status' => $this->boolean(),
20 'sort' => $this->integer() 20 'sort' => $this->integer()
21 ]); 21 ]);
22 22
frontend/config/main.php
@@ -89,6 +89,11 @@ @@ -89,6 +89,11 @@
89 'baseUrl' => '@web', 89 'baseUrl' => '@web',
90 'css' => [], 90 'css' => [],
91 ], 91 ],
  92 + 'frontend\assets\ArtboxModalAsset' => [
  93 + 'basePath' => '@webroot',
  94 + 'baseUrl' => '@web',
  95 + 'css' => [],
  96 + ],
92 ], 97 ],
93 'appendTimestamp' => true, 98 'appendTimestamp' => true,
94 ], 99 ],
frontend/controllers/ServiceController.php
@@ -9,15 +9,12 @@ @@ -9,15 +9,12 @@
9 namespace frontend\controllers; 9 namespace frontend\controllers;
10 10
11 use common\models\Service; 11 use common\models\Service;
  12 + use yii\db\ActiveQuery;
12 use yii\web\Controller; 13 use yii\web\Controller;
13 use yii\web\NotFoundHttpException; 14 use yii\web\NotFoundHttpException;
14 15
15 class ServiceController extends Controller 16 class ServiceController extends Controller
16 { 17 {
17 - public function actionIndex(){  
18 -  
19 - }  
20 -  
21 public function actionView($id){ 18 public function actionView($id){
22 $model = $this->findModel($id); 19 $model = $this->findModel($id);
23 if ($model->parent_id == null){ 20 if ($model->parent_id == null){
@@ -26,6 +23,7 @@ @@ -26,6 +23,7 @@
26 $others = Service::find()->where(['parent_id' => $model->parent_id])->all(); 23 $others = Service::find()->where(['parent_id' => $model->parent_id])->all();
27 } 24 }
28 25
  26 + $model->body = str_replace('[[prices]]', $this->renderPartial('_prices', ['prices' => $model->prices]), $model->body);
29 return $this->render('view', [ 27 return $this->render('view', [
30 'model' => $model, 28 'model' => $model,
31 'others'=> $others 29 'others'=> $others
@@ -35,7 +33,11 @@ @@ -35,7 +33,11 @@
35 public function findModel($id){ 33 public function findModel($id){
36 $model = Service::find() 34 $model = Service::find()
37 ->where(['id' => $id, 'status' => true]) 35 ->where(['id' => $id, 'status' => true])
38 - ->with(['language.alias', 'image', 'prices'])->one(); 36 + ->with(['language.alias', 'image', 'prices' => function (ActiveQuery $query){
  37 + $query->where(['status' => true])->orderBy('sort');
  38 + }, 'comments' => function (ActiveQuery $query){
  39 + $query->where(['status' => true]);
  40 + }])->one();
39 if (empty($model)){ 41 if (empty($model)){
40 throw new NotFoundHttpException('Model not found'); 42 throw new NotFoundHttpException('Model not found');
41 } 43 }
frontend/controllers/SiteController.php
@@ -5,6 +5,7 @@ @@ -5,6 +5,7 @@
5 use common\models\blog\Article; 5 use common\models\blog\Article;
6 use common\models\Comment; 6 use common\models\Comment;
7 use common\models\Package; 7 use common\models\Package;
  8 + use common\models\Price;
8 use common\models\Service; 9 use common\models\Service;
9 use common\models\Settings; 10 use common\models\Settings;
10 use common\models\slider\Slide; 11 use common\models\slider\Slide;
@@ -176,6 +177,15 @@ @@ -176,6 +177,15 @@
176 } 177 }
177 } 178 }
178 } 179 }
  180 + public function actionPrices(){
  181 + $services = Service::find()->innerJoinWith(['prices' => function (ActiveQuery $query){
  182 + $query->where(['price.status' => true]);
  183 + }])->all();
  184 +
  185 + return $this->render('prices', [
  186 + 'services' => $services,
  187 + ]);
  188 + }
179 189
180 190
181 public function actionPage1(){ 191 public function actionPage1(){
frontend/views/layouts/main.php
@@ -15,6 +15,7 @@ @@ -15,6 +15,7 @@
15 use artbox\core\models\Feedback; 15 use artbox\core\models\Feedback;
16 use artbox\core\models\PageCategory; 16 use artbox\core\models\PageCategory;
17 use artbox\core\models\User; 17 use artbox\core\models\User;
  18 + use artbox\core\seo\widgets\SeoBreadcrumbs;
18 use common\models\Service; 19 use common\models\Service;
19 use common\models\Settings; 20 use common\models\Settings;
20 use frontend\assets\AppAsset; 21 use frontend\assets\AppAsset;
@@ -209,7 +210,7 @@ @@ -209,7 +210,7 @@
209 } 210 }
210 $itemsMobile[] = [ 211 $itemsMobile[] = [
211 'label' => \Yii::t('app', 'Цены'), 212 'label' => \Yii::t('app', 'Цены'),
212 - 'url' => '#', 213 + 'url' => Url::to(['site/prices']),
213 'options' => [ 214 'options' => [
214 'class' => 'active' 215 'class' => 'active'
215 ] 216 ]
@@ -253,6 +254,18 @@ @@ -253,6 +254,18 @@
253 <!-- #content должен быть в main.php --> 254 <!-- #content должен быть в main.php -->
254 <div id="content_" class="section-box-content"> 255 <div id="content_" class="section-box-content">
255 <!-- start breadcrumbs --> 256 <!-- start breadcrumbs -->
  257 + <?php if (!empty($this->params['breadcrumbs'])) {?>
  258 + <section class="section-breadcrumb">
  259 + <div class="container">
  260 + <div class="row">
  261 + <div class="col-xs-12 col-sm-12 breadcrumb-wrapp">
  262 + <?=SeoBreadcrumbs::widget([
  263 + 'links' => isset($this->params[ 'breadcrumbs' ]) ? $this->params[ 'breadcrumbs' ] : [],
  264 + ])?>
  265 + </div>
  266 + </div>
  267 + </section>
  268 + <?php }?>
256 <!-- если не главная выводить сюда--> 269 <!-- если не главная выводить сюда-->
257 <!-- end breadcrumbs --> 270 <!-- end breadcrumbs -->
258 271
@@ -265,17 +278,17 @@ @@ -265,17 +278,17 @@
265 <div class="row"> 278 <div class="row">
266 <div class="col-xs-12"> 279 <div class="col-xs-12">
267 <div class="map-info-wrapp"> 280 <div class="map-info-wrapp">
268 - <div class="marker-img"><img src="images/map/marker-1.png" width="68" height="80" alt=""></div> 281 + <div class="marker-img"><img src="/images/map/marker-1.png" width="68" height="80" alt=""></div>
269 <div class="map-adress"><?=$settings->address?></div> 282 <div class="map-adress"><?=$settings->address?></div>
270 <?php if (!empty($settings->phone) or !empty($settings->phone2)){?> 283 <?php if (!empty($settings->phone) or !empty($settings->phone2)){?>
271 - <div class="ico-map"><img src="images/map/phone-map.svg" alt=""></div> 284 + <div class="ico-map"><img src="/images/map/phone-map.svg" alt=""></div>
272 <div class="map-phone"> 285 <div class="map-phone">
273 <p><?=$settings->phone?></p> 286 <p><?=$settings->phone?></p>
274 <p><?=$settings->phone2?></p> 287 <p><?=$settings->phone2?></p>
275 </div> 288 </div>
276 <?php } ?> 289 <?php } ?>
277 <?php if (!empty($settings->email)){?> 290 <?php if (!empty($settings->email)){?>
278 - <div class="ico-map ico-map-mail"><img src="images/map/mail-map.svg" alt=""></div> 291 + <div class="ico-map ico-map-mail"><img src="/images/map/mail-map.svg" alt=""></div>
279 <div class="map-mail"> 292 <div class="map-mail">
280 <a href="mailto:<?=$settings->email?>"><?=$settings->email?></a> 293 <a href="mailto:<?=$settings->email?>"><?=$settings->email?></a>
281 </div> 294 </div>
@@ -329,9 +342,9 @@ @@ -329,9 +342,9 @@
329 342
330 <div class="col-xs-3 col-sm-3"> 343 <div class="col-xs-3 col-sm-3">
331 <ul class="seti-list"> 344 <ul class="seti-list">
332 - <li><a target="_blank" href="#"><img src="images/s-1.svg" alt=""></a></li>  
333 - <li><a target="_blank" href="#"><img src="images/s-2.svg" alt=""></a></li>  
334 - <li><a target="_blank" href="#"><img src="images/s-3.svg" alt=""></a></li> 345 + <li><a target="_blank" href="#"><img src="/images/s-1.svg" alt=""></a></li>
  346 + <li><a target="_blank" href="#"><img src="/images/s-2.svg" alt=""></a></li>
  347 + <li><a target="_blank" href="#"><img src="/images/s-3.svg" alt=""></a></li>
335 </ul> 348 </ul>
336 </div> 349 </div>
337 </div> 350 </div>
@@ -367,7 +380,7 @@ @@ -367,7 +380,7 @@
367 <div class="button-call-mob"><a class="call-sms" href="sms:<?= $settings->phone ?>">Отправить SMS</a> 380 <div class="button-call-mob"><a class="call-sms" href="sms:<?= $settings->phone ?>">Отправить SMS</a>
368 </div> 381 </div>
369 <div class="button-call-mob"> 382 <div class="button-call-mob">
370 - <a class="call-contact" href="contacts/abclinic.vcf">Добавить в контакты</a></div> 383 + <a class="call-contact" href="/contacts/abclinic.vcf">Добавить в контакты</a></div>
371 </div> 384 </div>
372 </div> 385 </div>
373 </div> 386 </div>
frontend/views/service/_prices.php 0 → 100644
  1 +<?php
  2 + /**
  3 + * @var \common\models\Price[] $prices
  4 + */
  5 + ?>
  6 +<?php if (!empty($prices)){?>
  7 +<table>
  8 + <thead>
  9 + <tr>
  10 + <th>Услуги</th>
  11 + <th>Цена</th>
  12 + </tr>
  13 + </thead>
  14 + <tbody>
  15 + <?php foreach ($prices as $price){?>
  16 + <tr>
  17 + <td><?=$price->title?></td>
  18 + <td><b><?=$price->price?> <span>грн.</span></b></td>
  19 + </tr>
  20 + <?php }?>
  21 + </tbody>
  22 +</table>
  23 +<?php } ?>
frontend/views/service/view.php 0 → 100644
  1 +<?php
  2 + /**
  3 + * @var \common\models\Service $model;
  4 + * @var \common\models\Service[] $others;
  5 + */
  6 + use artbox\core\helpers\Url;
  7 +
  8 + $this->params[ 'breadcrumbs' ][] = $model->title
  9 + ?>
  10 + <section class="section-service-page">
  11 + <div class="container">
  12 + <div class="row">
  13 + <div class="hidden-xs col-xs-12 col-sm-4 col-md-3">
  14 + <div class="style service-list-wr">
  15 + <ul>
  16 + <?php foreach ($others as $service){?>
  17 + <li <?=($model->id == $service->id ? 'class="active"' : '')?>><a href="<?=Url::to(['alias' => $service->alias])?>"><?=$service->title?></a></li>
  18 + <?php }?>
  19 + </ul>
  20 + </div>
  21 + </div>
  22 + <div class="col-xs-12 col-sm-8 col-md-9">
  23 + <div class="row">
  24 + <div class="col-xs-12">
  25 + <h1 class="title-pages"><?=$model->title?></h1>
  26 + </div>
  27 + </div>
  28 + <div class="row">
  29 + <div class="col-xs-12 service-text-table-wrapp editor-text">
  30 + <?=$model->body?>
  31 + </div>
  32 + </div>
  33 + </div>
  34 + </div>
  35 + </div>
  36 +</section>
  37 +<?php if (!empty($model->comments) or !empty($model->questions)){?>
  38 +<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>
  63 + </div>
  64 + </div>
  65 + </div>
  66 +</section>
  67 +<?php } ?>
0 \ No newline at end of file 68 \ No newline at end of file
frontend/views/site/prices.php 0 → 100644
  1 +<?php
  2 + /**
  3 + * @var \yii\web\View $this;
  4 + * @var \common\models\Service[] $services;
  5 + */
  6 + $this->params['breadcrumbs'][] = \Yii::t('app', 'Цены');
  7 + ?>
  8 +
  9 +
  10 +<section class="section-price">
  11 + <div class="container">
  12 + <div class="row">
  13 + <div class="col-xs-12">
  14 +<!-- <h1 class="title-pages">Цены на услуги медицинской клиники ABClinik</h1>-->
  15 + <div class="title-pages">Цены на услуги медицинской клиники ABClinik</div>
  16 + </div>
  17 + </div>
  18 + <div class="row">
  19 + <div class="col-xs-12">
  20 + <div class="price-bl-wrapp acordion-bl-wr">
  21 + <?php foreach ($services as $service) {?>
  22 + <div class="acordion-wr service-tb-wrapp">
  23 + <span class="acordion-ico"></span>
  24 + <div class="service-title-wr">
  25 + <div class="service-title"><?=$service->title?></div>
  26 + </div>
  27 + <table cellpadding="0" cellspacing="0" border="0">
  28 +<!-- <tr>-->
  29 +<!-- <th colspan="2">Прием специалистов</th>-->
  30 +<!-- </tr>-->
  31 + <?php foreach ($service->prices as $price){?>
  32 + <tr>
  33 + <td><?=$price->title?></td>
  34 + <td><?=$price->price?> <span>грн.</span></td>
  35 + </tr>
  36 + <?php } ?>
  37 + </table>
  38 + </div>
  39 + <?php }?>
  40 +
  41 + </div>
  42 + </div>
  43 + </div>
  44 + </div>
  45 +</section>
0 \ No newline at end of file 46 \ No newline at end of file