Commit c61dbbfba0ecb1ac405119e1041f258dee4808b4

Authored by Alexey Boroda
1 parent 2e5525d5

-Categories ready

frontend/controllers/PageController.php
... ... @@ -3,6 +3,8 @@
3 3  
4 4 use artbox\core\components\SeoComponent;
5 5 use artbox\core\models\Page;
  6 + use artbox\core\models\PageCategory;
  7 + use yii\db\ActiveQuery;
6 8 use yii\web\Controller;
7 9 use yii\web\NotFoundHttpException;
8 10 use Yii;
... ... @@ -33,25 +35,33 @@
33 35 $lefts = null;
34 36 }
35 37  
36   - $pages = Page::find()
37   - ->with('lang')
38   - ->where(
39   - [
40   - 'not',
41   - [ 'id' => $id ],
42   - ]
43   - )
44   - ->limit(5)
45   - ->all();
  38 + $categories = PageCategory::find()
  39 + ->with('lang')
  40 + ->with(
  41 + [
  42 + 'pages' => function (ActiveQuery $query) use ($id) {
  43 + $query->with('lang.alias');
  44 + $query->where(
  45 + [
  46 + 'not',
  47 + [
  48 + 'id' => $id,
  49 + ],
  50 + ]
  51 + );
  52 + },
  53 + ]
  54 + )
  55 + ->all();
46 56  
47 57 return $this->render(
48 58 'view',
49 59 [
50   - 'model' => $model,
51   - 'pages' => $pages,
52   - 'body' => $body,
53   - 'lefts' => $lefts,
54   - 'images' => $model->getImages(),
  60 + 'model' => $model,
  61 + 'categories' => $categories,
  62 + 'body' => $body,
  63 + 'lefts' => $lefts,
  64 + 'images' => $model->getImages(),
55 65 ]
56 66 );
57 67 }
... ...
frontend/views/page/view.php
... ... @@ -2,17 +2,18 @@
2 2 use artbox\core\components\SeoComponent;
3 3 use artbox\core\models\Image;
4 4 use artbox\core\models\Page;
  5 + use artbox\core\models\PageCategory;
5 6 use yii\helpers\Html;
6 7 use yii\web\View;
7 8  
8 9 /**
9   - * @var View $this
10   - * @var Page $model
11   - * @var Page[] $pages
12   - * @var SeoComponent $seo
13   - * @var Image[] $images
14   - * @var string $lefts
15   - * @var string $body
  10 + * @var View $this
  11 + * @var Page $model
  12 + * @var PageCategory[] $categories
  13 + * @var SeoComponent $seo
  14 + * @var Image[] $images
  15 + * @var string $lefts
  16 + * @var string $body
16 17 */
17 18 $seo = \Yii::$app->get('seo');
18 19 $this->params[ 'breadcrumbs' ][] = $seo->title;
... ... @@ -69,30 +70,36 @@ _________________________________________________________ -->
69 70 <!-- *** PAGES MENU ***
70 71 _________________________________________________________ -->
71 72 <div class="panel panel-default sidebar-menu">
72   -
73   - <div class="panel-heading">
74   - <h3 class="panel-title">Услуги</h3>
75   - </div>
76   -
77   - <div class="panel-body">
78   - <ul class="nav nav-pills nav-stacked">
79   - <?php
80   - foreach ($pages as $page) {
81   - echo Html::tag(
82   - 'li',
83   - Html::a(
84   - $page->lang->title,
85   - [
86   - 'page/view',
87   - 'id' => $page->id,
88   - ]
89   - )
90   - );
91   - }
92   - ?>
93   - </ul>
94   -
95   - </div>
  73 +
  74 + <?php foreach ($categories as $category) {
  75 + if (!empty($category->pages)) {
  76 + ?>
  77 +
  78 + <div class="panel-heading">
  79 + <h3 class="panel-title">Услуги</h3>
  80 + </div>
  81 +
  82 + <div class="panel-body">
  83 + <ul class="nav nav-pills nav-stacked">
  84 + <?php
  85 + foreach ($category->pages as $page) {
  86 + echo Html::tag(
  87 + 'li',
  88 + Html::a(
  89 + $page->lang->title,
  90 + [
  91 + 'page/view',
  92 + 'id' => $page->id,
  93 + ]
  94 + )
  95 + );
  96 + }
  97 + ?>
  98 + </ul>
  99 +
  100 + </div>
  101 + <?php }
  102 + } ?>
96 103 </div>
97 104  
98 105 <!-- *** PAGES MENU END *** -->
... ... @@ -121,9 +128,9 @@ _________________________________________________________ --&gt;
121 128  
122 129  
123 130 <div id="get-it" class="pages">
124   - <div class="container">
125   - <div class="col-md-12 col-sm-12" style="text-align: center;">
126   - <a href="#" class="btn bnm btn-template-transparent-primary modal-link" data-form="appointment-modal" data-modalname="Записаться на приём">Записаться на прием</a>
127   - </div>
  131 + <div class="container">
  132 + <div class="col-md-12 col-sm-12" style="text-align: center;">
  133 + <a href="#" class="btn bnm btn-template-transparent-primary modal-link" data-form="appointment-modal" data-modalname="Записаться на приём">Записаться на прием</a>
128 134 </div>
  135 + </div>
129 136 </div>
130 137 \ No newline at end of file
... ...