public function actionIndex() { $this->pageTitle = Lang::t('Register'); $user_model = new Users(Users::SCENARIO_SIGNUP); $user_model->activation_code = Common::generateHash(microtime()); $user_model->user_level = UserLevels::LEVEL_MEMBER; $user_model->timezone = SettingsTimezone::DEFAULT_TIME_ZONE; $user_model_class_name = $user_model->getClassName(); $person_model = new Person(); $person_model_class_name = $person_model->getClassName(); $person_address = new PersonAddress(); $person_address_class_name = $person_address->getClassName(); if (Yii::app()->request->isPostRequest) { $verifyPhoneCode = isset($_POST['verifyPhoneCode']) ? $_POST['verifyPhoneCode'] : null; $verifyMailCode = isset($_POST['verifyMailCode']) ? $_POST['verifyMailCode'] : null; if (isset($_POST[$user_model_class_name])) { $user_model->validatorList->add(CValidator::createValidator('CaptchaExtendedValidator', $user_model, 'verifyCode', array('allowEmpty' => !CCaptcha::checkRequirements()))); $user_model->attributes = $_POST[$user_model_class_name]; $user_model->status = 'Active'; $user_model->answer = strtoupper($user_model->answer); $user_model->validate(); } if (isset($_POST[$person_model_class_name])) { $person_model->attributes = $_POST[$person_model_class_name]; $person_model->married = 'n'; $person_model->havechildren = 'n'; $person_model->validate(); } if (isset($_POST['PersonAddress'])) { $person_address->attributes = $_POST[$person_address_class_name]; $person_address->validate(array('phone1')); } if (!$user_model->hasErrors() && !$person_model->hasErrors() && !$person_address->hasErrors()) { if ($user_model->save(FALSE)) { $person_model->id = $user_model->id; $person_model->save(FALSE); $person_address->person_id = $person_model->id; $person_address->save(FALSE); Yii::app()->user->setFlash('success', Lang::t('Account created successfullly. Please enter your login details.')); $this->redirect($this->createUrl('/users/default/view', array('id' => $user_model->id))); //$this->redirect('../default/login'); } } } $this->render('index', array('user_model' => $user_model, 'person_model' => $person_model, 'person_address' => $person_address, 'verifyPhoneCode' => isset($verifyPhoneCode) ? $verifyPhoneCode : null, 'verifyMailCode' => isset($verifyMailCode) ? $verifyMailCode : null)); }
/** * Creates a new model. * If creation is successful, the browser will be redirected to the 'view' page. */ public function actionCreate($dept_id = NULL, $user_level = NULL) { $this->hasPrivilege(Acl::ACTION_CREATE); $this->pageTitle = Lang::t('Add ' . $this->resourceLabel); //account information $user_model = new Users(ActiveRecord::SCENARIO_CREATE); $user_model->status = Users::STATUS_ACTIVE; $user_model_class_name = $user_model->getClassName(); //personal information $person_model = new Person(); $person_model_class_name = $person_model->getClassName(); //personal address information $person_address = new PersonAddress(); $person_address_class_name = $person_address->getClassName(); if (Yii::app()->request->isPostRequest) { $user_model->attributes = $_POST[$user_model_class_name]; $person_model->attributes = $_POST[$person_model_class_name]; $person_address->attributes = $_POST[$person_address_class_name]; $user_model->validate(); $person_model->validate(); $person_address->validate(array('phone1')); if (!$user_model->hasErrors() && !$person_model->hasErrors() && !$person_address->hasErrors()) { if ($user_model->save(FALSE)) { $person_model->id = $user_model->id; $person_model->save(FALSE); $person_address->person_id = $person_model->id; $person_address->save(FALSE); $user_model->updateDeptUser(); if (!empty($user_model->dept_id)) { Dept::model()->updateContactPerson($user_model->dept_id, $person_model->id); } Yii::app()->user->setFlash('success', Lang::t('SUCCESS_MESSAGE')); $this->redirect(Controller::getReturnUrl($this->createUrl('view', array('id' => $user_model->id)))); } } } $user_model->timezone = Yii::app()->settings->get(Constants::CATEGORY_GENERAL, Constants::KEY_DEFAULT_TIMEZONE, SettingsTimezone::DEFAULT_TIME_ZONE); if (!empty($dept_id)) { $user_model->dept_id = $dept_id; } if (!empty($user_level)) { $user_model->user_level = $user_level; } $this->render('create', array('user_model' => $user_model, 'person_model' => $person_model, 'person_address' => $person_address)); }