/** * Creates a new model. * If creation is successful, the browser will be redirected to the 'view' page. */ public function actionCreate() { $model = new Knights(); // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model); if (isset($_POST['Knights'])) { $model->attributes = $_POST['Knights']; if ($model->save()) { $this->redirect(array('view', 'id' => $model->id)); } } $this->render('create', array('model' => $model)); }
/** * Register a new user */ public function actionSignin() { $output = array('errno' => 0, 'message' => '', 'html' => null, 'params' => null); //CHECK INPUT $user = new Users(); $user->attributes = array('id' => null, 'email' => $_POST['email'], 'password_md5' => hash(Yii::app()->params['security']['password_md5_algo'], $_POST['password']), 'password_sha512' => hash(Yii::app()->params['security']['password_sha512_algo'], $_POST['password']), 'status' => Users::STATUS_PENDING_ACTIVATION, 'suscribe_date' => date('Y-m-d H:i:s')); //Validate user data if ($user->validate()) { //CHECK email is in use $userSearch = Users::model()->find(array('select' => '*', 'condition' => 'email=:email', 'params' => array(':email' => $_POST['email']))); if ($userSearch) { //el email está siendo utilizado $output['message'] = 'El email está siendo utilizado. Si quieres recuperar la cuenta, ponte en contacto con nosotros.'; $output['errno'] = 1; } } else { //El email no es correcto. $output['message'] = 'El email está siendo utilizado.'; $output['errno'] = 1; } //Seach name of knight $knight = Knights::model()->find(array('select' => '*', 'condition' => 'name=:name', 'params' => array(':name' => ucfirst(strtolower($_POST['name']))))); if ($knight) { //caballero con nombre en uso $message = 'El nombre del caballero está en uso. Elige otro.'; $output['errno'] = 1; if ($output['errno'] === 0) { $output['message'] = $message; } else { $output['message'] .= $message; } } //INSERT USER AND KNIGHT INTO DATA BASE IF IS FREE ERROR if ($output['errno'] == 0) { if ($user->save(false)) { //Set attribute knight $knight = new Knights(); $knight->attributes = array('users_id' => $user->id, 'suscribe_date' => date('Y-m-d H:i:s'), 'name' => ucfirst(strtolower($_POST['name'])), 'status' => Knights::STATUS_PENDING_VALIDATION, 'level' => Yii::app()->params['knight_default']['level'], 'endurance' => 1, 'life' => 1, 'experiencie_earned' => Yii::app()->params['knight_default']['experiencie_earned'], 'experiencie_used' => Yii::app()->params['knight_default']['experiencie_used']); //Comprobamos si valida. if ($knight->validate()) { //Insertamos el caballero. if ($knight->save()) { //ENVIAMOS EMAIL //creamos el codigo de activacion. Va ser el md5 de email, nombre del caballero, password y la fecha en la que se da de alta $codigo_activacion = md5($_POST['email'] . $knight->name . hash('md5', $_POST['password']) . $user->suscribe_date); //cargamos la plantilla $message = Yii::app()->controller->renderFile(Yii::app()->basePath . Yii::app()->params['email_templates_path'] . 'sigin.tpl', array('enlace_activacion' => Yii::app()->params->url_domain . '/site/AccountActivation/email/' . $user->email . '/code/' . $codigo_activacion, 'knights_name' => $_POST['name']), true); //echo $message; // To send HTML mail, the Content-type header must be set $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n"; // Additional headers $headers .= 'To: ' . $_POST['email'] . "\r\n"; $headers .= 'From: <' . Yii::app()->params['adminEmail'] . '>' . "\r\n"; $headers = array($headers); if (!Yii::app()->email->send(Yii::app()->params['adminEmail'], $_POST['email'], Yii::app()->name . ': ¡ya eres parte de nuestra historia!', $message, $headers)) { $output['message'] = '<p>Se ha producido un error al enviar el correo electrónico. Contacta con nosotros para solucionar la incidencia.</p><p>¡Lo sentimos!</p>' . Yii::app()->email->getErrors(); $output['errno'] = 1; } } else { //Usuario encontrado $output['message'] = 'Se ha producido un error al dar de alta el caballero.'; $output['errno'] = 1; } } else { //Usuario encontrado $output['message'] = 'Se ha producido un error en la validación del caballero.'; $output['errno'] = 1; } } else { //No se ha podido dar de alta el usuario $output['message'] = 'Se ha producido un error al dar de alta un usuario.'; $output['errno'] = 1; } } //echo "NOBORRAR"; if ($output['errno'] == 0) { $output['message'] = $this->renderPartial('signin', null, true); } //SHOW OUTPUT echo CJSON::encode($output); }