Blame view

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