[ 'class' => 'yii\web\ErrorAction', ], 'captcha' => [ 'class' => 'yii\captcha\CaptchaAction', 'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null, ], ]; } public function beforeAction($action) { $this->enableCsrfValidation = false; return parent::beforeAction($action); } public function actionCity($q = null, $id = null) { \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; $out = ['results' => ['id' => '', 'text' => '']]; if (!is_null($q)) { $query = new Query; $query->select('name AS id, name AS text') ->from('cities') ->where(['like', 'name', mb_convert_case( $q,MB_CASE_TITLE, "UTF-8")]) ->limit(20); $command = $query->createCommand(); $data = $command->queryAll(); $out['results'] = array_values($data); } elseif ($id > 0) { $out['results'] = ['id' => $id, 'text' => Cities::find($id)->name]; } return $out; } public function actionCountry($q = null, $id = null) { \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; $out = ['results' => ['id' => '', 'text' => '']]; if (!is_null($q)) { $query = new Query; $query->select('country_name AS id, country_name AS text') ->from('country') ->where(['like', 'lower(country_name)', mb_strtolower($q) ]) ->limit(20); $command = $query->createCommand(); $data = $command->queryAll(); $out['results'] = array_values($data); } elseif ($id > 0) { $out['results'] = ['id' => $id, 'text' => Country::find($id)->country_name]; } return $out; } public function actionFormsModalLogin() { return $this->renderAjax('forms-modal-login', []); } public function actionFormsModalContacts() { return $this->renderAjax('forms-modal-contacts', []); } public function actionFormsModalFav() { return $this->renderAjax('forms-modal-fav', []); } public function actionFormsModalOffer() { return $this->renderAjax('forms-modal-offer', []); } /** * Displays homepage. * * @return mixed */ public function actionIndex() { $specializations = Specialization::find()->where(['specialization_pid'=>0])->orderBy('specialization_id')->all(); return $this->render('index',[ 'specializations' => $specializations, ]); } /** * =================== * ==== BASIC YII ==== * =================== */ /** * Logs in a user. * * @return mixed */ 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, ]); } // creat new model table Social and new model User // $social = new Social(); // $user = new User(); // // $serviceName = Yii::$app->getRequest()->getQueryParam('service'); // // if (isset($serviceName)) { // /** @var $eauth \nodge\eauth\ServiceBase */ // $eauth = Yii::$app->get('eauth')->getIdentity($serviceName); // $eauth->setRedirectUrl(Yii::$app->getUser()->getReturnUrl()); // $eauth->setCancelUrl(Yii::$app->getUrlManager()->createAbsoluteUrl('site/login')); // // try { // if ($eauth->authenticate()) { // $identity = User::findByEAuth($eauth); // Yii::$app->getUser()->login($identity); // // //Save date get social network in database // if (! $social::find()->where(['social_user_id' => $identity[profile][id], 'social_name' => $identity[profile][service]])->exists()) { // $name = explode(' ',$identity[profile][name]); // $user->firstname = $name[0]; // $user->lastname = $name[1]; // $user->id_system_date = date("d.m.y.H:i:s"); // $user->save(); // $social->social_name = $identity[profile][service]; // $social->social_user_id = $identity[profile][id]; // $social->user_id = $user->id; // $social->validate(); // $social->errors; // $social->save(); // } // // // special redirect with closing popup window // $eauth->redirect(); // } // else { // // close popup window and redirect to cancelUrl // $eauth->cancel(); // } // } // catch (\nodge\eauth\ErrorException $e) { // // save error to show it later // Yii::$app->getSession()->setFlash('error', 'EAuthException: '.$e->getMessage()); // // // close popup window and redirect to cancelUrl // // $eauth->cancel(); // $eauth->redirect($eauth->getCancelUrl()); // } // } // // // // // 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, // ]); // } } /** * Logs out the current user. * * @return mixed */ public function actionLogout() { Yii::$app->user->logout(); return $this->goHome(); } /** * Signs user up. * * @return mixed */ public function actionRegistration() { $post = Yii::$app->request->post(); if(!empty($post) && isset($post['SignupForm']) && isset($post['SignupForm']['type'])){ if($post['SignupForm']['type'] == 1 ){ $model = new SignupForm(['scenario' => SignupForm::SCENARIO_USER]); } else { $model = new SignupForm(['scenario' => SignupForm::SCENARIO_COMPANY]); } } else { $model = new SignupForm(); } if ($model->load(Yii::$app->request->post())) { if ($user = $model->signup()) { $user_info = new UserInfo(); $user_info->load(Yii::$app->request->post(),'SignupForm'); $user_info->user_id = $user->id; $user_info->save(); if($user->type == 2 ){ $company_info = new CompanyInfo(); $company_info->load(Yii::$app->request->post(),'SignupForm'); $company_info->user_id = $user->id; $company_info->save(); } if (Yii::$app->getUser()->login($user)) { return $this->redirect('/accounts'); } } } $model = new SignupForm(); return $this->render('registration', [ 'model' => $model, ]); } /** * Requests password reset. * * @return mixed */ 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, ]); } /** * Resets password. * * @param string $tokenre * @return mixed * @throws BadRequestHttpException */ 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, ]); } public function actionHelp() { return $this->render('help'); } }