1 <?php
2
3 class RegistrationController extends Controller
4 {
5 public $defaultAction = 'registration';
6
7 8 9
10 public function actions()
11 {
12 return array(
13 'captcha'=>array(
14 'class'=>'CCaptchaAction',
15 'backColor'=>0xFFFFFF,
16 ),
17 );
18 }
19 20 21
22 public function actionRegistration() {
23 Profile::$regMode = true;
24 $model = new RegistrationForm;
25 $profile=new Profile;
26
27
28 if(isset($_POST['ajax']) && $_POST['ajax']==='registration-form')
29 {
30 echo UActiveForm::validate(array($model,$profile));
31 Yii::app()->end();
32 }
33
34 if (Yii::app()->user->id) {
35 $this->redirect(Yii::app()->controller->module->profileUrl);
36 } else {
37 if(isset($_POST['RegistrationForm'])) {
38 $model->attributes=$_POST['RegistrationForm'];
39 $profile->attributes=((isset($_POST['Profile'])?$_POST['Profile']:array()));
40 if($model->validate()&&$profile->validate())
41 {
42 $soucePassword = $model->password;
43 $model->activkey=UserModule::encrypting(microtime().$model->password);
44 $model->password=UserModule::encrypting($model->password);
45 $model->verifyPassword=UserModule::encrypting($model->verifyPassword);
46 $model->superuser=0;
47 $model->status=((Yii::app()->controller->module->activeAfterRegister)?User::STATUS_ACTIVE:User::STATUS_NOACTIVE);
48
49 if ($model->save()) {
50 $profile->user_id=$model->id;
51 $profile->save();
52 if (Yii::app()->controller->module->sendActivationMail) {
53 $activation_url = $this->createAbsoluteUrl('/user/activation/activation',array("activkey" => $model->activkey, "email" => $model->email));
54 UserModule::sendMail($model->email,UserModule::t("You registered from {site_name}",array('{site_name}'=>Yii::app()->name)),UserModule::t("Please activate you account go to {activation_url}",array('{activation_url}'=>$activation_url)));
55 }
56
57 if ((Yii::app()->controller->module->loginNotActiv||(Yii::app()->controller->module->activeAfterRegister&&Yii::app()->controller->module->sendActivationMail==false))&&Yii::app()->controller->module->autoLogin) {
58 $identity=new UserIdentity($model->username,$soucePassword);
59 $identity->authenticate();
60 Yii::app()->user->login($identity,0);
61 $this->redirect(Yii::app()->controller->module->returnUrl);
62 } else {
63 if (!Yii::app()->controller->module->activeAfterRegister&&!Yii::app()->controller->module->sendActivationMail) {
64 Yii::app()->user->setFlash('registration',UserModule::t("Thank you for your registration. Contact Admin to activate your account."));
65 } elseif(Yii::app()->controller->module->activeAfterRegister&&Yii::app()->controller->module->sendActivationMail==false) {
66 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))));
67 } elseif(Yii::app()->controller->module->loginNotActiv) {
68 Yii::app()->user->setFlash('registration',UserModule::t("Thank you for your registration. Please check your email or login."));
69 } else {
70 Yii::app()->user->setFlash('registration',UserModule::t("Thank you for your registration. Please check your email."));
71 }
72 $this->refresh();
73 }
74 }
75 } else $profile->validate();
76 }
77 $this->render('/user/registration',array('model'=>$model,'profile'=>$profile));
78 }
79 }
80 }