Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public function actionRegistration() {
- $model = new RegistrationForm;
- $profile=new Profile;
- $profile->regMode = true;
- // ajax validator
- if(isset($_POST['ajax']) && $_POST['ajax']==='registration-form')
- {
- echo UActiveForm::validate(array($model,$profile));
- Yii::app()->end();
- }
- if (Yii::app()->user->id) {
- $this->redirect(Yii::app()->controller->module->profileUrl);
- } else {
- if(isset($_POST['RegistrationForm'])) {
- $model->attributes=$_POST['RegistrationForm'];
- $profile->attributes=((isset($_POST['Profile'])?$_POST['Profile']:array()));
- if($model->validate()&&$profile->validate())
- {
- if(!empty($model->password) && $model->password==$model->verifyPassword) {
- $soucePassword = $model->password;
- $model->activkey=Yii::app()->hasher->hashPassword(microtime().$model->password);
- $model->password=Yii::app()->hasher->hashPassword($model->password);
- $model->verifyPassword=$model->password;
- }
- $model->createtime=time();
- $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;
- $model->superuser=0;
- $model->status=((Yii::app()->controller->module->activeAfterRegister)?User::STATUS_ACTIVE:User::STATUS_NOACTIVE);
- if ($model->save()) {
- $profile->user_id=$model->id;
- $profile->save();
- if (Yii::app()->controller->module->sendActivationMail) {
- $activation_url = $this->createAbsoluteUrl('/user/activation/activation',array("activkey" => $model->activkey, "email" => $model->email));
- UserModule::sendMail(
- $model->email,
- UserModule::t("Welcome! Your registration with {site_name} was successful",
- array('{site_name}'=>Yii::app()->name)),
- UserModule::t("Please activate your account. To do this, click this link: {activation_url}",
- array('{activation_url}'=>$activation_url)));
- }
- if ((Yii::app()->controller->module->loginNotActiv||(Yii::app()->controller->module->activeAfterRegister&&Yii::app()->controller->module->sendActivationMail==false))&&Yii::app()->controller->module->autoLogin) {
- $identity=new UserIdentity($model->username,$soucePassword);
- $identity->authenticate();
- Yii::app()->user->login($identity,0);
- $this->redirect(Yii::app()->controller->module->returnUrl);
- } else {
- if (!Yii::app()->controller->module->activeAfterRegister&&!Yii::app()->controller->module->sendActivationMail) {
- Yii::app()->user->setFlash('registration',UserModule::t("Thank you for your registration. Contact Admin to activate your account."));
- } elseif(Yii::app()->controller->module->activeAfterRegister&&Yii::app()->controller->module->sendActivationMail==false) {
- 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))));
- } elseif(Yii::app()->controller->module->loginNotActiv) {
- Yii::app()->user->setFlash('registration',UserModule::t("Thank you for your registration. Please check your email or login."));
- } else {
- Yii::app()->user->setFlash('registration',UserModule::t("Thank you for your registration. Please check your email."));
- }
- $this->refresh();
- }
- }
- } else $profile->validate();
- }
- $criteria=new CDbCriteria;
- $criteria->select='id,country';
- $countriesQ = CountryIso::model()->findAll($criteria);
- $countries = array();
- foreach($countriesQ as $p){
- $countries[$p->id] = $p->country;
- }
- $this->render('/user/registration',array('model'=>$model,'profile'=>$profile,'countries'=>$countries));
- }
- }
Add Comment
Please, Sign In to add comment