Blame view

backend/controllers/SettingsController.php 2.44 KB
2f3cd090   Yarik   Setting migrate
1
2
3
4
  <?php
      namespace backend\controllers;
      
      use common\models\Settings;
543b9b1c   Yarik   Composer ready
5
      use yii\base\InvalidConfigException;
2f3cd090   Yarik   Setting migrate
6
7
8
9
10
11
12
13
14
15
16
      use yii\filters\AccessControl;
      use yii\web\Controller;
      use Yii;
      
      /**
       * Class SettingsController
       *
       * @package artbox\core\controllers
       */
      class SettingsController extends Controller
      {
543b9b1c   Yarik   Composer ready
17
18
19
          /**
           * @inheritdoc
           */
2f3cd090   Yarik   Setting migrate
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
          public function behaviors()
          {
              return [
                  'access' => [
                      'class' => AccessControl::className(),
                      'rules' => [
                          [
                              'actions' => [
                                  'login',
                                  'error',
                              ],
                              'allow'   => true,
                          ],
                          [
                              'actions' => [
                                  'logout',
                                  'index',
                              ],
                              'allow'   => true,
                              'roles'   => [ '@' ],
                          ],
                      ],
                  ],
              ];
          }
          /**
543b9b1c   Yarik   Composer ready
46
           * @inheritdoc
2f3cd090   Yarik   Setting migrate
47
48
49
50
51
           */
          public function getViewPath()
          {
              return \Yii::getAlias('@artbox/core/views/settings');
          }
543b9b1c   Yarik   Composer ready
52
53
54
55
56
57
      
          /**
           * Display site settings page
           *
           * @return string|\yii\web\Response
           */
2f3cd090   Yarik   Setting migrate
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
          public function actionIndex()
          {
              $model = $this->findSettings();
              
              if ($model->load(Yii::$app->request->post()) && $model->save()) {
                  Yii::$app->session->setFlash('success', 'Settings saved');
                  
                  return $this->goHome();
              }
              
              return $this->render(
                  'settings',
                  [
                      'model' => $model,
                  ]
              );
          }
543b9b1c   Yarik   Composer ready
75
76
77
78
79
80
81
      
          /**
           * Find site settings
           *
           * @return \yii2tech\filedb\ActiveRecord
           * @throws \yii\base\InvalidConfigException
           */
2f3cd090   Yarik   Setting migrate
82
83
84
85
86
87
88
          public function findSettings()
          {
              if ($model = Settings::find()
                                   ->one()
              ) {
                  return $model;
              } else {
543b9b1c   Yarik   Composer ready
89
                  throw new InvalidConfigException('Settings file not found');
2f3cd090   Yarik   Setting migrate
90
91
              }
          }
543b9b1c   Yarik   Composer ready
92
93
      }