[ 'class' => 'yii\web\ErrorAction', ], ]; } /** * @inheritdoc */ public function behaviors() { return [ 'verbs' => [ 'class' => VerbFilter::className(), 'actions' => [ 'feedback' => [ 'post' ], ], ], ]; } /** * Displays homepage. * * @return mixed */ public function actionIndex() { return $this->render('index'); } /** * Displays contact page. * * @return mixed */ public function actionContact() { $contact = new Feedback(); return $this->render( 'contact', [ 'contact' => $contact, ] ); } /** * Displays about page. * * @return mixed */ public function actionAbout() { $page_about = Page::find() ->with('lang') ->where([ 'id' => 6 ]) ->one(); return $this->render( 'about', [ 'page_about' => $page_about, ] ); } /** * Action to view robots.txt file dinamycli * * @return string */ public function actionRobots() { $response = \Yii::$app->response; /** * @var Settings $settings */ $settings = Settings::find() ->one(); $temp = tmpfile(); fwrite($temp, $settings->robots); $meta = stream_get_meta_data($temp); $response->format = $response::FORMAT_RAW; $response->headers->set('Content-Type', 'text/plain'); return $this->renderFile($meta[ 'uri' ]); } public function actionFeedback() { Yii::$app->response->format = Response::FORMAT_JSON; /** * @var Mailer $mailer */ $mailer = \Yii::$app->get('smtpmailer'); $settings = Settings::getInstance(); if (empty(Yii::$app->request->post())) { throw new BadRequestHttpException(); } else { $model = new Feedback(); if ($model->load(Yii::$app->request->post()) && $model->save()) { $pattern = '/([a-zA-Z0-9\._-]*@[a-zA-Z0-9\._-]*)([;\s,:]*)/'; $replacement = '$1; '; $emailStr = preg_replace($pattern, $replacement, $settings->email); $emailStr = mb_substr($emailStr, 0, -2); // remove last "; " 2 symbols $emails = explode("; ", $emailStr); $mailer->compose( 'feedback', [ 'model' => $model, ] ) ->setFrom('artbox@domain.com') ->setTo($emails) ->setSubject(\Yii::t('app', 'Feedback')) ->send(); $alert = "

Success

Success text

"; return [ 'success' => true, 'message' => 'Success message', 'alert' => $alert, ]; } else { return [ 'success' => false, 'error' => $model->errors, ]; } } } public function actionAppment() { return $this->render('appment'); } public function actionPrice() { $page_stom = Page::find() ->with('lang') ->where([ 'id' => 3 ]) ->one(); $page_cosm = Page::find() ->with('lang') ->where([ 'id' => 4 ]) ->one(); return $this->render( 'price', [ 'page_stom' => $page_stom, 'page_cosm' => $page_cosm, ] ); } public function actionComments() { $model = new CommentPage( [ 'id' => 1, ] ); $this->view->params[ 'breadcrumbs' ][] = \Yii::t('app', 'Комментарии'); return $this->render( 'comments', [ 'model' => $model, ] ); } public function actionGallery() { $images = ( new Gallery() )->getImages(); return $this->render( 'gallery', [ 'images' => $images, ] ); } }