Blame view

frontend/controllers/PageController.php 2 KB
c0f2e593   Eugeny Galkovskiy   first commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
  <?php
      namespace frontend\controllers;
  
      use artbox\core\components\SeoComponent;
      use artbox\core\models\Page;
      use yii\helpers\Json;
      use yii\helpers\Url;
      use yii\helpers\VarDumper;
      use yii\web\Controller;
      use yii\web\NotFoundHttpException;
      use Yii;
  
      /**
       * Class PageController
       *
       * @package frontend\controllers
       */
      class PageController extends Controller
      {
          public function actionView($id)
          {
              $model = $this->findModel($id);
      
              /**
               * @var SeoComponent $seo
               */
              $seo = Yii::$app->get('seo');
              $seo->setModel($model->lang);
      
              $pages = Page::find()
                           ->with('lang')
                           ->where(
                               [
                                   'not',
                                   [ 'id' => $id ],
                               ]
                           )
                           ->limit(5)
                           ->all();
              
              return $this->render(
                  'view',
                  [
                      'model' => $model,
                      'pages' => $pages,
bada6a89   Alexey Boroda   -Artbox landing p...
46
                      'images' => $model->getImages(),
c0f2e593   Eugeny Galkovskiy   first commit
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
                  ]
              );
          }
      
          protected function findModel($id)
          {
              /**
               * @var Page $model
               */
              $model = Page::find()
                           ->where(
                               [
                                   'id' => $id,
                               ]
                           )
                           ->with('lang')
                           ->one();
      
              if (!empty( $model )) {
                  if ($model->lang->alias_id !== Yii::$app->seo->aliasId) {
                      throw new NotFoundHttpException('Wrong language');
                  }
                  return $model;
              } else {
                  throw new NotFoundHttpException('Model not found');
              }
          }
      }