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'])) {?>
+
+
+
+
+ =SeoBreadcrumbs::widget([
+ 'links' => isset($this->params[ 'breadcrumbs' ]) ? $this->params[ 'breadcrumbs' ] : [],
+ ])?>
+
+
+
+
@@ -265,17 +278,17 @@
-
+
=$settings->address?>
phone) or !empty($settings->phone2)){?>
-
+
=$settings->phone?>
=$settings->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 @@
+
+
+
+
+
+ Услуги |
+ Цена |
+
+
+
+
+
+ =$price->title?> |
+ =$price->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
+ ?>
+
+comments) or !empty($model->questions)){?>
+
+
\ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+ prices as $price){?>
+
+ =$price->title?> |
+ =$price->price?> грн. |
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
--
libgit2 0.21.4