Blame view

frontend/controllers/SiteController.php 8.52 KB
d8c1a2e0   Yarik   Big commit artbox
1
  <?php
cc658b4c   Yarik   Big commit
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
      namespace frontend\controllers;
      
      use common\models\Banner;
      use common\models\Certificate;
      use common\models\Page;
      use common\models\Slider;
      use common\modules\product\models\Category;
      use common\modules\rubrication\models\TaxGroup;
      use Yii;
      use yii\base\InvalidParamException;
      use yii\data\ActiveDataProvider;
      use yii\web\BadRequestHttpException;
      use yii\web\Controller;
      use yii\filters\VerbFilter;
      use yii\filters\AccessControl;
      use common\models\LoginForm;
      use frontend\models\PasswordResetRequestForm;
      use frontend\models\ResetPasswordForm;
      use frontend\models\SignupForm;
      use yii\web\NotFoundHttpException;
      
d8c1a2e0   Yarik   Big commit artbox
23
      /**
cc658b4c   Yarik   Big commit
24
       * Site controller
d8c1a2e0   Yarik   Big commit artbox
25
       */
cc658b4c   Yarik   Big commit
26
      class SiteController extends Controller
d8c1a2e0   Yarik   Big commit artbox
27
      {
cc658b4c   Yarik   Big commit
28
29
30
31
32
33
34
35
36
37
38
39
          
          /**
           * @inheritdoc
           */
          public function behaviors()
          {
              return [
                  'access' => [
                      'class' => AccessControl::className(),
                      'only'  => [
                          'logout',
                          'signup',
d8c1a2e0   Yarik   Big commit artbox
40
                      ],
cc658b4c   Yarik   Big commit
41
42
43
44
45
46
47
48
49
50
51
                      'rules' => [
                          [
                              'actions' => [ 'signup' ],
                              'allow'   => true,
                              'roles'   => [ '?' ],
                          ],
                          [
                              'actions' => [ 'logout' ],
                              'allow'   => true,
                              'roles'   => [ '@' ],
                          ],
d8c1a2e0   Yarik   Big commit artbox
52
53
                      ],
                  ],
cc658b4c   Yarik   Big commit
54
55
56
57
58
                  'verbs'  => [
                      'class'   => VerbFilter::className(),
                      'actions' => [
                          'logout' => [ 'post' ],
                      ],
d8c1a2e0   Yarik   Big commit artbox
59
                  ],
cc658b4c   Yarik   Big commit
60
              ];
d8c1a2e0   Yarik   Big commit artbox
61
          }
cc658b4c   Yarik   Big commit
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
          
          /**
           * @inheritdoc
           */
          public function actions()
          {
              return [
                  'error'   => [
                      'class' => 'yii\web\ErrorAction',
                  ],
                  'captcha' => [
                      'class'           => 'yii\captcha\CaptchaAction',
                      'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : NULL,
                  ],
              ];
d8c1a2e0   Yarik   Big commit artbox
77
          }
cc658b4c   Yarik   Big commit
78
79
80
81
82
83
84
85
86
          
          /**
           * Displays homepage.
           * @return mixed
           */
          public function actionIndex()
          {
              $categories = Category::find()
                                    ->where([ 'depth' => 0 ])
d55d2fe0   Yarik   Multilanguage
87
                                    ->joinWith('lang', true, 'INNER JOIN')
cc658b4c   Yarik   Big commit
88
89
90
                                    ->all();
              $purposes = TaxGroup::find()
                                  ->where([
27ad59d9   Yarik   Purpose public fix.
91
                                      'tax_group.tax_group_id' => 5,
cc658b4c   Yarik   Big commit
92
93
                                      'level' => 0,
                                  ])
d55d2fe0   Yarik   Multilanguage
94
                                  ->joinWith('options.lang')
cc658b4c   Yarik   Big commit
95
96
97
                                  ->one();
              $banners = Banner::find()
                               ->where([
d55d2fe0   Yarik   Multilanguage
98
                                   'banner.banner_id' => [
cc658b4c   Yarik   Big commit
99
100
101
102
103
                                       3,
                                       4,
                                   ],
                                   'status'    => 1,
                               ])
d55d2fe0   Yarik   Multilanguage
104
                               ->joinWith('lang', true, 'INNER JOIN')
cc658b4c   Yarik   Big commit
105
106
107
                               ->all();
              $slider = Slider::find()
                              ->where([
d55d2fe0   Yarik   Multilanguage
108
109
                                  'slider.slider_id' => 2,
                                  'slider.status'    => 1,
cc658b4c   Yarik   Big commit
110
                              ])
d55d2fe0   Yarik   Multilanguage
111
                              ->joinWith('sliderImage.lang')
cc658b4c   Yarik   Big commit
112
113
114
115
116
117
118
                              ->one();
              return $this->render('index', [
                  'categories' => $categories,
                  'purposes'   => $purposes,
                  'banners'    => $banners,
                  'slider'     => $slider,
              ]);
d8c1a2e0   Yarik   Big commit artbox
119
          }
cc658b4c   Yarik   Big commit
120
121
122
123
124
          
          /**
           * Logs in a user.
           * @return mixed
           */
d55d2fe0   Yarik   Multilanguage
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
          //        public function actionLogin()
          //        {
          //            if(!Yii::$app->user->isGuest) {
          //                return $this->goHome();
          //            }
          //
          //            $model = new LoginForm();
          //            if($model->load(Yii::$app->request->post()) && $model->login()) {
          //                return $this->goBack();
          //            } else {
          //                return $this->render('login', [
          //                    'model' => $model,
          //                ]);
          //            }
          //        }
cc658b4c   Yarik   Big commit
140
141
142
143
144
          
          /**
           * Logs out the current user.
           * @return mixed
           */
d55d2fe0   Yarik   Multilanguage
145
146
147
148
149
150
          //        public function actionLogout()
          //        {
          //            Yii::$app->user->logout();
          //
          //            return $this->goHome();
          //        }
cc658b4c   Yarik   Big commit
151
152
153
154
155
156
157
158
          
          /**
           * Displays contact page.
           * @return string
           */
          public function actionContact()
          {
              return $this->render('contact');
d8c1a2e0   Yarik   Big commit artbox
159
          }
cc658b4c   Yarik   Big commit
160
161
162
163
164
          
          /**
           * Signs user up.
           * @return mixed
           */
d55d2fe0   Yarik   Multilanguage
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
          //        public function actionSignup()
          //        {
          //            $model = new SignupForm();
          //            if($model->load(Yii::$app->request->post())) {
          //                if($user = $model->signup()) {
          //                    if(Yii::$app->getUser()
          //                                ->login($user)
          //                    ) {
          //                        return $this->goHome();
          //                    }
          //                }
          //            }
          //
          //            return $this->render('signup', [
          //                'model' => $model,
          //            ]);
          //        }
cc658b4c   Yarik   Big commit
182
183
184
185
186
          
          /**
           * Requests password reset.
           * @return mixed
           */
d55d2fe0   Yarik   Multilanguage
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
          //        public function actionRequestPasswordReset()
          //        {
          //            $model = new PasswordResetRequestForm();
          //            if($model->load(Yii::$app->request->post()) && $model->validate()) {
          //                if($model->sendEmail()) {
          //                    Yii::$app->session->setFlash('success', 'Check your email for further instructions.');
          //
          //                    return $this->goHome();
          //                } else {
          //                    Yii::$app->session->setFlash('error', 'Sorry, we are unable to reset password for email provided.');
          //                }
          //            }
          //
          //            return $this->render('requestPasswordResetToken', [
          //                'model' => $model,
          //            ]);
          //        }
cc658b4c   Yarik   Big commit
204
205
206
207
208
209
210
211
212
          
          /**
           * Resets password.
           *
           * @param string $token
           *
           * @return mixed
           * @throws BadRequestHttpException
           */
d55d2fe0   Yarik   Multilanguage
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
          //        public function actionResetPassword($token)
          //        {
          //            try {
          //                $model = new ResetPasswordForm($token);
          //            } catch(InvalidParamException $e) {
          //                throw new BadRequestHttpException($e->getMessage());
          //            }
          //
          //            if($model->load(Yii::$app->request->post()) && $model->validate() && $model->resetPassword()) {
          //                Yii::$app->session->setFlash('success', 'New password was saved.');
          //
          //                return $this->goHome();
          //            }
          //
          //            return $this->render('resetPassword', [
          //                'model' => $model,
          //            ]);
          //        }
cc658b4c   Yarik   Big commit
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
          
          /**
           * Show certificates page.
           * @return string
           */
          public function actionCertificates()
          {
              $query = Certificate::find();
              $dataProvider = new ActiveDataProvider([
                  'query'      => $query,
                  'pagination' => false,
              ]);
              return $this->render('certificates', [
                  'dataProvider' => $dataProvider,
              ]);
d8c1a2e0   Yarik   Big commit artbox
246
          }
cc658b4c   Yarik   Big commit
247
248
249
          
          public function actionPage($id)
          {
d55d2fe0   Yarik   Multilanguage
250
              $model = Page::find()->where(['page.id' => $id])->joinWith('lang', true, 'INNER JOIN')->one();
cc658b4c   Yarik   Big commit
251
252
253
254
255
256
              if(empty( $model )) {
                  throw new NotFoundHttpException();
              }
              return $this->render('page', [
                  'model' => $model,
              ]);
36d1807a   Yarik   Big commit.
257
          }
d8c1a2e0   Yarik   Big commit artbox
258
      }