[ 'class' => AccessControl::className(), 'only' => ['logout', 'signup'], 'rules' => [ [ 'actions' => ['signup'], 'allow' => true, 'roles' => ['?'], ], [ 'actions' => ['logout'], 'allow' => true, 'roles' => ['@'], ], ], ], 'verbs' => [ 'class' => VerbFilter::className(), 'actions' => [ 'logout' => ['post'], ], ], ]; } /** * @inheritdoc */ public function actions() { return [ 'error' => [ 'class' => 'yii\web\ErrorAction', ], 'captcha' => [ 'class' => 'yii\captcha\CaptchaAction', 'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null, ], ]; } public function actionForecast(){ $spots = Spots::find()->all(); return $this->render('forecast', [ 'spots' => $spots ]); } public function actionIndex() { if (Yii::$app->request->post()) { $post = Yii::$app->request->post(); if(isset($post['QuickOrder'])){ $text = "Имя: ".$post['QuickOrder']['phone_num'].'
'; $text .= "E-mail: ".$post['QuickOrder']['email'].'
'; $text .= "Коментарий: ".$post['QuickOrder']['comment']; $model = new QuickOrder(); $model->load(Yii::$app->request->post()); $model->save(); MailWidget::widget(['email' => 'butikmramora@gmail.com', 'text' => $text, 'subject' => 'Консультация']); return $this->redirect('success'); } else if(isset($post['Subscribe'])){ $text = "E-mail: ".$post['Subscribe']['email'].'
'; $text .= "Телефон: ".$post['Subscribe']['phone_num']; $model = new Subscribe(); $model->load(Yii::$app->request->post()); $model->save(); MailWidget::widget(['email' => 'butikmramora@gmail.com', 'text' => $text, 'subject' => 'Обратный звонок']); return $this->redirect('success'); } else if(isset($post['DetailsRequest'])){ $text = "Имя: ".$post['DetailsRequest']['name'].'
'; $text .= "E-mail: ".$post['DetailsRequest']['email'].'
'; $text .= "Город: ".$post['DetailsRequest']['city'].'
'; $text .= "Телефон: ".$post['DetailsRequest']['phone_number']; $text .= "Коментарий: ".$post['DetailsRequest']['comment']; $model = new DetailsRequest(); $model->load(Yii::$app->request->post()); $model->save(); MailWidget::widget(['email' => 'butikmramora@gmail.com', 'text' => $text, 'subject' => 'Дополнительная информация']); return $this->redirect('success'); } } $blog = Articles::find()->where(['type'=>'blog'])->limit(6)->all(); $trips = Articles::find()->where(['type'=>'trips'])->limit(3)->all(); $news = Articles::find()->where(['type'=>'news'])->limit(3)->all(); $gallery = Gallery::find()->limit(4)->all(); $events = Events::find()->all(); $spots = Spots::find()->limit(3)->all(); $schools = Schools::find()->limit(3)->all(); return $this->render('index', [ 'blog' => $blog, 'trips' => $trips, 'news' => $news, 'gallery' => $gallery, 'events' => $events, 'spots' => $spots, 'schools' => $schools ]); } public function actionStore(){ return $this->render('store', [ ]); } public function actionSpots(){ return $this->render('spots', [ ]); } 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, ]); } } public function actionLogout() { Yii::$app->user->logout(); return $this->goHome(); } public function actionContact() { return $this->render('contact', []); } public function actionAbout() { $dataEventProvider = new ArrayDataProvider([ 'allModels' => Events::find()->all() ]); return $this->render('about',[ 'dataEventProvider'=>$dataEventProvider ]); } public function actionSuccess() { return $this->render('success'); } public function actionSearch() { $search = new SiteSearchForm(); if ($search->load(Yii::$app->request->get()) && $search->validate()) { $query1 = (new Query()) ->select('name, description, translit ') ->addSelect(["CONCAT('') AS image"]) ->addSelect(["CONCAT('spots/view') AS url"]) ->where(['like','name',$search->string]) ->from('{{%spots}}'); $query2 = (new Query()) ->select('name, description, translit,image ') ->addSelect(["CONCAT('schools/view') AS url"]) ->where(['like','name',$search->string]) ->from('{{%schools}}'); $dataProvider = new ArrayDataProvider([ 'allModels' => $query1->union($query2)->all(), 'pagination' => [ 'pageSize' => 6, ], ]); return $this->render('search', [ 'dataProvider' => $dataProvider, ]); } } 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, ]); } public function actionRequestPasswordReset() { $model = new PasswordResetRequestForm(); if ($model->load(Yii::$app->request->post()) && $model->validate()) { if ($model->sendEmail()) { Yii::$app->getSession()->setFlash('success', 'Check your email for further instructions.'); return $this->goHome(); } else { Yii::$app->getSession()->setFlash('error', 'Sorry, we are unable to reset password for email provided.'); } } return $this->render('requestPasswordResetToken', [ 'model' => $model, ]); } 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->getSession()->setFlash('success', 'New password was saved.'); return $this->goHome(); } return $this->render('resetPassword', [ 'model' => $model, ]); } public function actionChoseCar(){ try{ $post = Yii::$app->request->post(); Yii::$app->session->set('chosen-car', $post['car_id']); } catch (\Exception $e) { echo $e->getMessage(); echo $e->getLine(); } } public function actionContacts(){ return $this->render('contacts'); } public function actionWhere(){ return $this->render('where'); } public function actionAjaxFilter(){ Yii::$app->request->queryParams; $searchModel = new StoneSearch(); $array = Yii::$app->request->post(); $post = json_decode($array['post']); $dataProvider = $searchModel->search(['StoneSearch'=>(array)$post]); echo MyListView::widget( [ 'dataProvider' => $dataProvider, 'itemView'=>'@app/views/site/_stone_list', 'summary'=>'', 'options'=> [ 'tag'=>'ul' ] ] ); } public function actionPriceList(){ return $this->render('price-list', [ ]); } }