Blame view

frontend/controllers/ArticleController.php 1.59 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);
a04c0e15   Yarik   Article query fix
24
              $dataProvider->query->orderBy([ 'date' => SORT_DESC ]);
36d1807a   Yarik   Big commit.
25
26
27
28
29
30
31
32
              $dataProvider->pagination = [
                  'pageSize' => 10,
              ];
              
              return $this->render('index', [
                  'searchModel'  => $searchModel,
                  'dataProvider' => $dataProvider,
              ]);
d8c1a2e0   Yarik   Big commit artbox
33
34
35
36
37
38
          }
          
          /**
           * Display one article page.
           * @return string
           */
36d1807a   Yarik   Big commit.
39
          public function actionView($id)
d8c1a2e0   Yarik   Big commit artbox
40
          {
36d1807a   Yarik   Big commit.
41
42
43
44
45
46
              $model = $this->findModel($id);
              return $this->render('view', [
                  'model' => $model,
              ]);
          }
          
d55d2fe0   Yarik   Multilanguage
47
48
49
50
51
52
53
          private function findModel($id)
          {
              $model = Articles::find()
                               ->where([ 'articles_id' => $id ])
                               ->joinWith('lang', true, 'INNER JOIN')
                               ->one();
              if(!empty( $model )) {
36d1807a   Yarik   Big commit.
54
55
56
57
                  return $model;
              } else {
                  throw new NotFoundHttpException();
              }
d8c1a2e0   Yarik   Big commit artbox
58
59
          }
      }