Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.88 KB | None | 0 0
  1. /**
  2.      * Creates a new Applications model.
  3.      * If creation is successful, the browser will be redirected to the 'view' page.
  4.      * @return mixed
  5.      */
  6.     public function actionCreate()
  7.     {
  8.         $model = new Applications();
  9.  
  10.         /*
  11.          * Получаем максимальный идентификатор
  12.          * Устанавливаем значение на единицу больше
  13.          */
  14.         $get['max_index'] = $model->getMaxIndex() + 1;
  15.  
  16.         if(Yii::$app->request->isAjax && $model->load(Yii::$app->request->post()) && !$model->validate()){
  17.             Yii::$app->response->format = Response::FORMAT_JSON;
  18.             return ActiveForm::validate($model);
  19.         }
  20.         elseif($model->load(Yii::$app->request->post()) && $model->validate()){
  21.             if(Yii::$app->user->isGuest){
  22.                 $userName = explode(' ', $model->applicationUserName);
  23.                 $userPassword = substr(sha1(microtime()), 0, 8);
  24.  
  25.                 $modelUser = new User();
  26.                 $modelUser->id = $id = $modelUser->getId();
  27.                 $modelUser->email = $model->applicationEmail;
  28.                 $modelUser->userFirstName = $userName[0];
  29.                 $modelUser->userLastName = $userName[1];
  30.                 $modelUser->userPhone =  $model->applicationPhone;
  31.                 $modelUser->setPassword($userPassword);
  32.                 $modelUser->generateAuthKey();
  33.                 $modelUser->save(false);
  34.  
  35.                 Yii::$app->mailer->compose()
  36.                     ->setFrom([Yii::$app->params['supportEmail'] => Yii::$app->name])
  37.                     ->setTo($model->applicationEmail)
  38.                     ->setSubject('Вы успешно зарегистрировались на веб-сайте '.Yii::$app->name.'')
  39.                     ->setHtmlBody('<p>Здравствуйте '.ucfirst($userName[0]).' '.ucfirst($userName[1]).'!</p><p>Вы получили данное письмо, так как зарегистрировались на веб-сайте '.Yii::$app->name.'.</p><p>Для входа в личный кабинет, используйте:<br>Ваш логин: '.$model->applicationEmail.'<br>Ваш пароль: '.$userPassword.'</p>')
  40.                     ->send();
  41.  
  42.                 $auth = Yii::$app->authManager;
  43.                 $auth->assign($auth->getRole('user'), $modelUser->findByEmail($model->applicationEmail)['id']);
  44.  
  45.                 $modelSignIn = new SignIn();
  46.                 $modelSignIn->email = $model->applicationEmail;
  47.                 $modelSignIn->password = $userPassword;
  48.                 $modelSignIn->login();
  49.             }
  50.  
  51.             $model->applicationIdUser = Yii::$app->user->identity->id;
  52.             $model->applicationIdCity = str_replace('||', ',', $model->applicationIdCity);
  53.             $model->applicationIdCity = explode(',', str_replace('|', '', $model->applicationIdCity));
  54.  
  55.             $applicationIdCity = [];
  56.  
  57.             foreach($model->applicationIdCity as $key=>$value){
  58.                 $applicationIdCity[$key] = $value;
  59.             }
  60.  
  61.             $model->applicationIdCity = serialize($applicationIdCity);
  62.  
  63.             $model->applicationIdCategory = str_replace('||', ',', $model->applicationIdCategory);
  64.             $model->applicationIdCategory = explode(',', str_replace('|', '', $model->applicationIdCategory));
  65.             $applicationIdCategory = [];
  66.  
  67.             foreach($model->applicationIdCategory as $key=>$value){
  68.                 $applicationIdCategory[$key] = $value;
  69.             }
  70.  
  71.  
  72.  
  73.             $model->applicationIdCategory = serialize($applicationIdCategory);
  74.  
  75.             $model->applicationIndex = $get['max_index'];
  76.             $model->applicationIdCountry = 1;
  77.             $model->applicationDate = strtotime(date('d.m.Y.H.i.s'));
  78.             $model->save(false);
  79.  
  80.             return $this->redirect('/applications/');
  81.         }
  82.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement