Blame view

backend/controllers/PageController.php 4.03 KB
b507d689   andryeyev   Итерация 1 (Терми...
1
2
3
4
5
6
7
8
9
10
  <?php
  
  namespace backend\controllers;
  
  use Yii;
  use common\models\Page;
  use backend\models\SearchPage;
  use yii\web\Controller;
  use yii\web\NotFoundHttpException;
  use yii\filters\VerbFilter;
48269590   andryeyev   + Страница getDat...
11
  use common\models\PageLang;
b507d689   andryeyev   Итерация 1 (Терми...
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
  
  /**
   * PageController implements the CRUD actions for Page model.
   */
  class PageController extends Controller
  {
      public function behaviors()
      {
          return [
              'verbs' => [
                  'class' => VerbFilter::className(),
                  'actions' => [
                      'delete' => ['post'],
                  ],
              ],
          ];
      }
ab4d7cb1   andryeyev   Page + Языковая в...
29
      
b507d689   andryeyev   Итерация 1 (Терми...
30
31
32
33
34
35
  
      /**
       * Lists all Page models.
       * @return mixed
       */
      public function actionIndex()
ab4d7cb1   andryeyev   Page + Языковая в...
36
37
38
39
      {
          $searchModel = new SearchPage();
          $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
  
b507d689   andryeyev   Итерация 1 (Терми...
40
          return $this->render('index', [
b507d689   andryeyev   Итерация 1 (Терми...
41
              'searchModel' => $searchModel,
ab4d7cb1   andryeyev   Page + Языковая в...
42
              'dataProvider' => $dataProvider,
b507d689   andryeyev   Итерация 1 (Терми...
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
          ]);
      }
  
      /**
       * Displays a single Page model.
       * @param integer $id
       * @return mixed
       */
      public function actionView($id)
      {
          return $this->render('view', [
              'model' => $this->findModel($id),
          ]);
      }
  
      /**
       * Creates a new Page model.
       * If creation is successful, the browser will be redirected to the 'view' page.
       * @return mixed
       */
      public function actionCreate()
      {
          $model = new Page();
48269590   andryeyev   + Страница getDat...
66
67
68
69
70
71
72
73
74
75
76
77
78
79
   
          if ($model->load(Yii::$app->request->post()) && $model->save()) 
          {
              // сохраняем в таблицу page_lang
              $model2 = new PageLang();
        
              // передаем переменные 
              $model2->attributes = $_POST['Page'];
              $model2->page_id = $model->page_id;
              $model2->lang_id = Yii::$app->lang_id;
              
              // сохраняем
              $model2->save();
              
b507d689   andryeyev   Итерация 1 (Терми...
80
              return $this->redirect(['view', 'id' => $model->page_id]);
48269590   andryeyev   + Страница getDat...
81
82
83
          } 
          else 
          {
b507d689   andryeyev   Итерация 1 (Терми...
84
85
              return $this->render('create', [
                  'model' => $model,
b507d689   andryeyev   Итерация 1 (Терми...
86
87
88
89
90
91
92
93
94
95
96
              ]);
          }
      }
  
      /**
       * Updates an existing Page model.
       * If update is successful, the browser will be redirected to the 'view' page.
       * @param integer $id
       * @return mixed
       */
      public function actionUpdate($id)
48269590   andryeyev   + Страница getDat...
97
      { 
b507d689   andryeyev   Итерация 1 (Терми...
98
          $model = $this->findModel($id);
b507d689   andryeyev   Итерация 1 (Терми...
99
  
48269590   andryeyev   + Страница getDat...
100
101
102
103
          if ($model->load(Yii::$app->request->post()) && $model->save())
          {
              // сохраняем в таблицу page_lang
              $model2 = new PageLang();
583ea05f   andryeyev   + widget-select2
104
105
106
107
108
109
110
111
         
              // передаем переменные 
              if ($array = $model->findPageLangField($_POST['Page']))
              {
                  // сохраняем
                  $model2->updateAll($array, ['page_id' => $id, 'lang_id' => Yii::$app->lang_id]);
              }
  
b507d689   andryeyev   Итерация 1 (Терми...
112
              return $this->redirect(['view', 'id' => $model->page_id]);
48269590   andryeyev   + Страница getDat...
113
114
115
          }
          else
          {
583ea05f   andryeyev   + widget-select2
116
              return $this->render('update', [
b507d689   andryeyev   Итерация 1 (Терми...
117
                  'model' => $model,
b507d689   andryeyev   Итерация 1 (Терми...
118
119
120
121
122
123
124
125
126
127
128
129
              ]);
          }
      }
  
      /**
       * Deletes an existing Page model.
       * If deletion is successful, the browser will be redirected to the 'index' page.
       * @param integer $id
       * @return mixed
       */
      public function actionDelete($id)
      {
583ea05f   andryeyev   + widget-select2
130
          // удаляем page
b507d689   andryeyev   Итерация 1 (Терми...
131
          $this->findModel($id)->delete();
583ea05f   andryeyev   + widget-select2
132
133
134
135
          
          // удаляем page_lang
          $model2 = new PageLang();
          $model2->deleteAll('page_id = '.(int)$id);
b507d689   andryeyev   Итерация 1 (Терми...
136
137
138
139
140
141
142
143
144
145
146
147
148
  
          return $this->redirect(['index']);
      }
  
      /**
       * Finds the Page model based on its primary key value.
       * If the model is not found, a 404 HTTP exception will be thrown.
       * @param integer $id
       * @return Page the loaded model
       * @throws NotFoundHttpException if the model cannot be found
       */
      protected function findModel($id)
      {
48269590   andryeyev   + Страница getDat...
149
          if (($model = Page::findOne(['page_id' => $id])) !== null) {
b507d689   andryeyev   Итерация 1 (Терми...
150
151
152
153
154
155
              return $model;
          } else {
              throw new NotFoundHttpException('The requested page does not exist.');
          }
      }
  }