Blame view

frontend/controllers/PageController.php 2.42 KB
f5002842   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
  <?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);
      
442daa2f   Timur Kastemirov   img from gallery ...
30
31
32
33
34
35
36
37
38
              if (strpos($model->lang->body, '[[gallery]]')) {
                  $splited = explode('[[gallery]]', $model->lang->body);
                  $body = array_shift($splited);
                  $lefts = implode('', $splited);
              } else {
                  $body = $model->lang->body;
                  $lefts = null;
              }
              
f5002842   Eugeny Galkovskiy   first commit
39
40
41
42
43
44
45
46
47
48
49
50
51
52
              $pages = Page::find()
                           ->with('lang')
                           ->where(
                               [
                                   'not',
                                   [ 'id' => $id ],
                               ]
                           )
                           ->limit(5)
                           ->all();
              
              return $this->render(
                  'view',
                  [
442daa2f   Timur Kastemirov   img from gallery ...
53
54
55
56
57
                      'model'  => $model,
                      'pages'  => $pages,
                      'images' => $model->getImages(),
                      'body'   => $body,
                      'lefts'  => $lefts,
f5002842   Eugeny Galkovskiy   first commit
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
                  ]
              );
          }
      
          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');
              }
          }
      }