コード例 #1
0
 /**
  * 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));
 }
コード例 #2
0
 /**
  * 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);
 }