Blame view

frontend/controllers/ArticleController.php 1.66 KB
d8c1a2e0   Yarik   Big commit artbox
1
2
3
4
  <?php
      
      namespace frontend\controllers;
      
36d1807a   Yarik   Big commit.
5
6
      use common\models\Articles;
      use common\models\ArticlesSearch;
d8c1a2e0   Yarik   Big commit artbox
7
      use yii\web\Controller;
36d1807a   Yarik   Big commit.
8
      use yii\web\NotFoundHttpException;
d55d2fe0   Yarik   Multilanguage
9
      
d8c1a2e0   Yarik   Big commit artbox
10
11
12
13
14
15
16
17
18
19
20
21
      /**
       * Article controller
       */
      class ArticleController extends Controller
      {
          
          /**
           * Displays article list.
           * @return string
           */
          public function actionIndex()
          {
36d1807a   Yarik   Big commit.
22
23
              $searchModel = new ArticlesSearch();
              $dataProvider = $searchModel->search(\Yii::$app->request->queryParams);
d55d2fe0   Yarik   Multilanguage
24
25
              $dataProvider->query->orderBy([ 'date' => SORT_DESC ])
                                  ->joinWith('lang', true, 'INNER JOIN');
36d1807a   Yarik   Big commit.
26
27
28
29
30
31
32
33
              $dataProvider->pagination = [
                  'pageSize' => 10,
              ];
              
              return $this->render('index', [
                  'searchModel'  => $searchModel,
                  'dataProvider' => $dataProvider,
              ]);
d8c1a2e0   Yarik   Big commit artbox
34
35
36
37
38
39
          }
          
          /**
           * Display one article page.
           * @return string
           */
36d1807a   Yarik   Big commit.
40
          public function actionView($id)
d8c1a2e0   Yarik   Big commit artbox
41
          {
36d1807a   Yarik   Big commit.
42
43
44
45
46
47
              $model = $this->findModel($id);
              return $this->render('view', [
                  'model' => $model,
              ]);
          }
          
d55d2fe0   Yarik   Multilanguage
48
49
50
51
52
53
54
          private function findModel($id)
          {
              $model = Articles::find()
                               ->where([ 'articles_id' => $id ])
                               ->joinWith('lang', true, 'INNER JOIN')
                               ->one();
              if(!empty( $model )) {
36d1807a   Yarik   Big commit.
55
56
57
58
                  return $model;
              } else {
                  throw new NotFoundHttpException();
              }
d8c1a2e0   Yarik   Big commit artbox
59
60
          }
      }