Guest User

Untitled

a guest
Jul 7th, 2018
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.01 KB | None | 0 0
  1. public function actionRegistration() {
  2. $model = new RegistrationForm;
  3. $profile=new Profile;
  4. $profile->regMode = true;
  5.  
  6. // ajax validator
  7. if(isset($_POST['ajax']) && $_POST['ajax']==='registration-form')
  8. {
  9. echo UActiveForm::validate(array($model,$profile));
  10. Yii::app()->end();
  11. }
  12.  
  13. if (Yii::app()->user->id) {
  14. $this->redirect(Yii::app()->controller->module->profileUrl);
  15. } else {
  16. if(isset($_POST['RegistrationForm'])) {
  17. $model->attributes=$_POST['RegistrationForm'];
  18. $profile->attributes=((isset($_POST['Profile'])?$_POST['Profile']:array()));
  19. if($model->validate()&&$profile->validate())
  20. {
  21. if(!empty($model->password) && $model->password==$model->verifyPassword) {
  22. $soucePassword = $model->password;
  23. $model->activkey=Yii::app()->hasher->hashPassword(microtime().$model->password);
  24. $model->password=Yii::app()->hasher->hashPassword($model->password);
  25. $model->verifyPassword=$model->password;
  26. }
  27. $model->createtime=time();
  28. $model->lastvisit=((Yii::app()->controller->module->loginNotActiv||(Yii::app()->controller->module->activeAfterRegister&&Yii::app()->controller->module->sendActivationMail==false))&&Yii::app()->controller->module->autoLogin)?time():0;
  29. $model->superuser=0;
  30. $model->status=((Yii::app()->controller->module->activeAfterRegister)?User::STATUS_ACTIVE:User::STATUS_NOACTIVE);
  31.  
  32. if ($model->save()) {
  33. $profile->user_id=$model->id;
  34. $profile->save();
  35. if (Yii::app()->controller->module->sendActivationMail) {
  36. $activation_url = $this->createAbsoluteUrl('/user/activation/activation',array("activkey" => $model->activkey, "email" => $model->email));
  37. UserModule::sendMail(
  38. $model->email,
  39. UserModule::t("Welcome! Your registration with {site_name} was successful",
  40. array('{site_name}'=>Yii::app()->name)),
  41. UserModule::t("Please activate your account. To do this, click this link: {activation_url}",
  42. array('{activation_url}'=>$activation_url)));
  43. }
  44.  
  45. if ((Yii::app()->controller->module->loginNotActiv||(Yii::app()->controller->module->activeAfterRegister&&Yii::app()->controller->module->sendActivationMail==false))&&Yii::app()->controller->module->autoLogin) {
  46. $identity=new UserIdentity($model->username,$soucePassword);
  47. $identity->authenticate();
  48. Yii::app()->user->login($identity,0);
  49. $this->redirect(Yii::app()->controller->module->returnUrl);
  50. } else {
  51. if (!Yii::app()->controller->module->activeAfterRegister&&!Yii::app()->controller->module->sendActivationMail) {
  52. Yii::app()->user->setFlash('registration',UserModule::t("Thank you for your registration. Contact Admin to activate your account."));
  53. } elseif(Yii::app()->controller->module->activeAfterRegister&&Yii::app()->controller->module->sendActivationMail==false) {
  54. Yii::app()->user->setFlash('registration',UserModule::t("Thank you for your registration. Please {{login}}.",array('{{login}}'=>CHtml::link(UserModule::t('Login'),Yii::app()->controller->module->loginUrl))));
  55. } elseif(Yii::app()->controller->module->loginNotActiv) {
  56. Yii::app()->user->setFlash('registration',UserModule::t("Thank you for your registration. Please check your email or login."));
  57. } else {
  58. Yii::app()->user->setFlash('registration',UserModule::t("Thank you for your registration. Please check your email."));
  59. }
  60. $this->refresh();
  61. }
  62. }
  63. } else $profile->validate();
  64. }
  65. $criteria=new CDbCriteria;
  66. $criteria->select='id,country';
  67. $countriesQ = CountryIso::model()->findAll($criteria);
  68. $countries = array();
  69. foreach($countriesQ as $p){
  70. $countries[$p->id] = $p->country;
  71. }
  72. $this->render('/user/registration',array('model'=>$model,'profile'=>$profile,'countries'=>$countries));
  73. }
  74. }
Add Comment
Please, Sign In to add comment