Blame view

backend/controllers/ArticleController.php 4.91 KB
d8c1a2e0   Yarik   Big commit artbox
1
  <?php
d55d2fe0   Yarik   Multilanguage
2
3
4
      
      namespace backend\controllers;
      
f202ab2b   Yarik   Article table ref...
5
6
      use common\models\Article;
      use common\models\ArticleSearch;
d55d2fe0   Yarik   Multilanguage
7
      use Yii;
d55d2fe0   Yarik   Multilanguage
8
9
10
11
      use yii\web\Controller;
      use yii\web\NotFoundHttpException;
      use yii\filters\VerbFilter;
      use developeruz\db_rbac\behaviors\AccessBehavior;
d55d2fe0   Yarik   Multilanguage
12
      
d8c1a2e0   Yarik   Big commit artbox
13
      /**
f202ab2b   Yarik   Article table ref...
14
       * ArticleController implements the CRUD actions for Article model.
d8c1a2e0   Yarik   Big commit artbox
15
       */
f202ab2b   Yarik   Article table ref...
16
      class ArticleController extends Controller
d8c1a2e0   Yarik   Big commit artbox
17
      {
d55d2fe0   Yarik   Multilanguage
18
19
20
21
22
23
24
25
26
27
28
          
          /**
           * @inheritdoc
           */
          public function behaviors()
          {
              return [
                  'access' => [
                      'class' => AccessBehavior::className(),
                      'rules' => [
                          'site' => [
d8c1a2e0   Yarik   Big commit artbox
29
                              [
d55d2fe0   Yarik   Multilanguage
30
31
32
33
34
35
36
37
                                  'actions' => [
                                      'login',
                                      'error',
                                  ],
                                  'allow'   => true,
                              ],
                          ],
                      ],
d8c1a2e0   Yarik   Big commit artbox
38
                  ],
d55d2fe0   Yarik   Multilanguage
39
40
41
42
43
44
45
46
47
48
                  'verbs'  => [
                      'class'   => VerbFilter::className(),
                      'actions' => [
                          'delete' => [ 'POST' ],
                      ],
                  ],
              ];
          }
          
          /**
f202ab2b   Yarik   Article table ref...
49
           * Lists all Article models.
d55d2fe0   Yarik   Multilanguage
50
51
52
53
           * @return mixed
           */
          public function actionIndex()
          {
f202ab2b   Yarik   Article table ref...
54
              $searchModel = new ArticleSearch();
d55d2fe0   Yarik   Multilanguage
55
56
57
58
59
60
61
62
63
              $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
              
              return $this->render('index', [
                  'searchModel'  => $searchModel,
                  'dataProvider' => $dataProvider,
              ]);
          }
          
          /**
f202ab2b   Yarik   Article table ref...
64
           * Displays a single Article model.
d55d2fe0   Yarik   Multilanguage
65
66
67
68
69
70
71
72
73
74
75
76
77
           *
           * @param integer $id
           *
           * @return mixed
           */
          public function actionView($id)
          {
              return $this->render('view', [
                  'model' => $this->findModel($id),
              ]);
          }
          
          /**
f202ab2b   Yarik   Article table ref...
78
           * Creates a new Article model.
d55d2fe0   Yarik   Multilanguage
79
80
81
82
83
           * If creation is successful, the browser will be redirected to the 'view' page.
           * @return mixed
           */
          public function actionCreate()
          {
f202ab2b   Yarik   Article table ref...
84
              $model = new Article();
14cd7eed   Yarik   LanguageBehavior ...
85
              $model->generateLangs();
d55d2fe0   Yarik   Multilanguage
86
              if($model->load(Yii::$app->request->post())) {
14cd7eed   Yarik   LanguageBehavior ...
87
                  $model->loadLangs(\Yii::$app->request);
fd238f57   Yarik   Admin begin refac...
88
89
90
91
92
                  if($model->save() && $model->transactionStatus) {
                      return $this->redirect([
                          'view',
                          'id' => $model->id,
                      ]);
d55d2fe0   Yarik   Multilanguage
93
                  }
d8c1a2e0   Yarik   Big commit artbox
94
              }
d8c1a2e0   Yarik   Big commit artbox
95
              return $this->render('create', [
d55d2fe0   Yarik   Multilanguage
96
                  'model'       => $model,
8af13427   Yarik   For leha commit.
97
                  'modelLangs' => $model->modelLangs,
d8c1a2e0   Yarik   Big commit artbox
98
99
              ]);
          }
36d1807a   Yarik   Big commit.
100
          
d55d2fe0   Yarik   Multilanguage
101
          /**
f202ab2b   Yarik   Article table ref...
102
           * Updates an existing Article model.
d55d2fe0   Yarik   Multilanguage
103
104
105
106
107
108
109
110
111
           * If update is successful, the browser will be redirected to the 'view' page.
           *
           * @param integer $id
           *
           * @return mixed
           */
          public function actionUpdate($id)
          {
              $model = $this->findModel($id);
14cd7eed   Yarik   LanguageBehavior ...
112
              $model->generateLangs();
d55d2fe0   Yarik   Multilanguage
113
              if($model->load(Yii::$app->request->post())) {
14cd7eed   Yarik   LanguageBehavior ...
114
                  $model->loadLangs(\Yii::$app->request);
fd238f57   Yarik   Admin begin refac...
115
116
117
118
119
                  if($model->save() && $model->transactionStatus) {
                      return $this->redirect([
                          'view',
                          'id' => $model->id,
                      ]);
d55d2fe0   Yarik   Multilanguage
120
                  }
d8c1a2e0   Yarik   Big commit artbox
121
              }
d8c1a2e0   Yarik   Big commit artbox
122
              return $this->render('update', [
d55d2fe0   Yarik   Multilanguage
123
                  'model'       => $model,
8af13427   Yarik   For leha commit.
124
                  'modelLangs' => $model->modelLangs,
d8c1a2e0   Yarik   Big commit artbox
125
126
              ]);
          }
d55d2fe0   Yarik   Multilanguage
127
128
          
          /**
f202ab2b   Yarik   Article table ref...
129
           * Deletes an existing Article model.
d55d2fe0   Yarik   Multilanguage
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
           * If deletion is successful, the browser will be redirected to the 'index' page.
           *
           * @param integer $id
           *
           * @return mixed
           */
          public function actionDelete($id)
          {
              $this->findModel($id)
                   ->delete();
              
              return $this->redirect([ 'index' ]);
          }
          
          /**
f202ab2b   Yarik   Article table ref...
145
           * Finds the Article model based on its primary key value.
d55d2fe0   Yarik   Multilanguage
146
147
148
149
           * If the model is not found, a 404 HTTP exception will be thrown.
           *
           * @param integer $id
           *
f202ab2b   Yarik   Article table ref...
150
           * @return Article the loaded model
d55d2fe0   Yarik   Multilanguage
151
152
153
154
           * @throws NotFoundHttpException if the model cannot be found
           */
          protected function findModel($id)
          {
f202ab2b   Yarik   Article table ref...
155
              if(( $model = Article::find()
fd238f57   Yarik   Admin begin refac...
156
157
158
159
                                    ->where([ 'id' => $id ])
                                    ->with('lang')
                                    ->one() ) !== NULL
              ) {
d55d2fe0   Yarik   Multilanguage
160
161
162
163
                  return $model;
              } else {
                  throw new NotFoundHttpException('The requested page does not exist.');
              }
d8c1a2e0   Yarik   Big commit artbox
164
165
          }
      }