diff --git a/common/models/Service.php b/common/models/Service.php index bcba34b..dda08ad 100644 --- a/common/models/Service.php +++ b/common/models/Service.php @@ -151,6 +151,14 @@ class Service extends ActiveRecord } public function getPrices(){ - return$this->hasMany(Price::className(), ['id' => 'service_id']); + return $this->hasMany(Price::className(), ['service_id' => 'id']); + } + + public function getComments(){ + return $this->hasMany(Comment::className(), ['service_id' => 'id']); + } + + public function getQuestions(){ + return $this->hasMany(Question::className(), ['service_id' => 'id']); } } diff --git a/console/migrations/m180524_152319_create_price_table.php b/console/migrations/m180524_152319_create_price_table.php index e1fb61e..8faede0 100644 --- a/console/migrations/m180524_152319_create_price_table.php +++ b/console/migrations/m180524_152319_create_price_table.php @@ -16,7 +16,7 @@ class m180524_152319_create_price_table extends Migration 'id' => $this->primaryKey(), 'service_id' => $this->integer(), 'price' => $this->integer(), - 'status' => $this->integer(), + 'status' => $this->boolean(), 'sort' => $this->integer() ]); diff --git a/frontend/config/main.php b/frontend/config/main.php index 2e3e0e9..dbfdf69 100755 --- a/frontend/config/main.php +++ b/frontend/config/main.php @@ -89,6 +89,11 @@ 'baseUrl' => '@web', 'css' => [], ], + 'frontend\assets\ArtboxModalAsset' => [ + 'basePath' => '@webroot', + 'baseUrl' => '@web', + 'css' => [], + ], ], 'appendTimestamp' => true, ], diff --git a/frontend/controllers/ServiceController.php b/frontend/controllers/ServiceController.php index ed311d8..c2284bc 100644 --- a/frontend/controllers/ServiceController.php +++ b/frontend/controllers/ServiceController.php @@ -9,15 +9,12 @@ namespace frontend\controllers; use common\models\Service; + use yii\db\ActiveQuery; use yii\web\Controller; use yii\web\NotFoundHttpException; class ServiceController extends Controller { - public function actionIndex(){ - - } - public function actionView($id){ $model = $this->findModel($id); if ($model->parent_id == null){ @@ -26,6 +23,7 @@ $others = Service::find()->where(['parent_id' => $model->parent_id])->all(); } + $model->body = str_replace('[[prices]]', $this->renderPartial('_prices', ['prices' => $model->prices]), $model->body); return $this->render('view', [ 'model' => $model, 'others'=> $others @@ -35,7 +33,11 @@ public function findModel($id){ $model = Service::find() ->where(['id' => $id, 'status' => true]) - ->with(['language.alias', 'image', 'prices'])->one(); + ->with(['language.alias', 'image', 'prices' => function (ActiveQuery $query){ + $query->where(['status' => true])->orderBy('sort'); + }, 'comments' => function (ActiveQuery $query){ + $query->where(['status' => true]); + }])->one(); if (empty($model)){ throw new NotFoundHttpException('Model not found'); } diff --git a/frontend/controllers/SiteController.php b/frontend/controllers/SiteController.php index ebe64c7..7ad7853 100755 --- a/frontend/controllers/SiteController.php +++ b/frontend/controllers/SiteController.php @@ -5,6 +5,7 @@ use common\models\blog\Article; use common\models\Comment; use common\models\Package; + use common\models\Price; use common\models\Service; use common\models\Settings; use common\models\slider\Slide; @@ -176,6 +177,15 @@ } } } + public function actionPrices(){ + $services = Service::find()->innerJoinWith(['prices' => function (ActiveQuery $query){ + $query->where(['price.status' => true]); + }])->all(); + + return $this->render('prices', [ + 'services' => $services, + ]); + } public function actionPage1(){ diff --git a/frontend/views/layouts/main.php b/frontend/views/layouts/main.php index 8db6d2f..fe29514 100755 --- a/frontend/views/layouts/main.php +++ b/frontend/views/layouts/main.php @@ -15,6 +15,7 @@ use artbox\core\models\Feedback; use artbox\core\models\PageCategory; use artbox\core\models\User; + use artbox\core\seo\widgets\SeoBreadcrumbs; use common\models\Service; use common\models\Settings; use frontend\assets\AppAsset; @@ -209,7 +210,7 @@ } $itemsMobile[] = [ 'label' => \Yii::t('app', 'Цены'), - 'url' => '#', + 'url' => Url::to(['site/prices']), 'options' => [ 'class' => 'active' ] @@ -253,6 +254,18 @@
+ params['breadcrumbs'])) {?> +
+
+
+ +
+
+ @@ -265,17 +278,17 @@
-
+
address?>
phone) or !empty($settings->phone2)){?> -
+

phone?>

phone2?>

email)){?> -
+
@@ -329,9 +342,9 @@
    -
  • -
  • -
  • +
  • +
  • +
@@ -367,7 +380,7 @@ + Добавить в контакты
diff --git a/frontend/views/service/_prices.php b/frontend/views/service/_prices.php new file mode 100644 index 0000000..899013a --- /dev/null +++ b/frontend/views/service/_prices.php @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + +
УслугиЦена
title?>price?> грн.
+ diff --git a/frontend/views/service/view.php b/frontend/views/service/view.php new file mode 100644 index 0000000..1b0f64a --- /dev/null +++ b/frontend/views/service/view.php @@ -0,0 +1,67 @@ +params[ 'breadcrumbs' ][] = $model->title + ?> +
+
+
+ +
+
+
+

title?>

+
+
+
+
+ body?> +
+
+
+
+
+
+comments) or !empty($model->questions)){?> +
+
+
+ comments)){?> +
+
Отзывы
+
+ comments as $comment){?> +
+
name?>
+
comment?>
+
created_at)?>
+
+ +
+ + +
+ Оставить отзыв +
+
+ + +
+
Вопрос-ответ
+
+
+
+
+ \ No newline at end of file diff --git a/frontend/views/site/prices.php b/frontend/views/site/prices.php new file mode 100644 index 0000000..47cecfe --- /dev/null +++ b/frontend/views/site/prices.php @@ -0,0 +1,45 @@ +params['breadcrumbs'][] = \Yii::t('app', 'Цены'); + ?> + + +
+
+
+
+ +
Цены на услуги медицинской клиники ABClinik
+
+
+
+
+
+ +
+ +
+
title?>
+
+ + + + + prices as $price){?> + + + + + +
title?>price?> грн.
+
+ + +
+
+
+
+
\ No newline at end of file -- libgit2 0.21.4