public function executeRegister_user(sfWebRequest $request) { $email = $request->getParameter('txtEmail'); $firt_name = $request->getParameter('txtNombre'); $last_name = $request->getParameter('txtApellidos'); $password = $request->getParameter('txtPassword'); $password_repeat = $request->getParameter('txt-password-repeat'); //validaciones respectivas $vEmail = new sfValidatorEmail(array('required' => true)); $vString = new sfValidatorString(array('required' => true)); try { $vEmail->clean(strtolower(trim($email))); } catch (sfValidatorError $exc) { return sfView::ERROR; } try { $vString->clean(strtolower(trim($firt_name))); } catch (sfValidatorError $exc) { return sfView::ERROR; } try { $vString->clean(strtolower(trim($last_name))); } catch (sfValidatorError $exc) { return sfView::ERROR; } if ($password != $password_repeat) { return sfView::ERROR; } /*convierto los espacios en blanco en + para que no suceda * algun error al usar el web-service */ $email = str_replace(' ', '+', $email); $firt_name = str_replace(' ', '+', $firt_name); $last_name = str_replace(' ', '+', $last_name); try { $conection = Propel::getConnection(); $conection->beginTransaction(); $new_user = new UserSc(); $new_user->setEmail($email); $new_user->setPassword($password); $new_user->setFlag('1'); $new_user->save(); //procedo a registrar al usuario en practil $lib = new practil_lib(); $url = $lib->url_practil_registrar_user($firt_name, $last_name, md5($password), $email, '1'); //si la url se forma correctamente if ($url != null) { $respuesta_registrar = file_get_contents($url); $decode = json_decode($respuesta_registrar); $codigo_respuesta = $decode->{'success'}; //si el registro en practil es correcto if ($codigo_respuesta) { $new_user->setProfile($decode->{'accountpk'}); $new_user->save(); $conection->commit(); $this->send_mail_scoredcard($decode->{'stoken'}, $new_user->getEmail()); return sfView::SUCCESS; } else { if ($decode->{'code'} == "p-10003") { $respt = array('firtname' => $firt_name, 'lastname' => $last_name, 'email' => $email, 'password' => $password, 'message' => 'el e-mail ya se encuentra registrado!'); $message_sign_in = $this->getUser()->setAttribute('message_sign_in', $respt); $conection->rollBack(); $this->redirect('@homepage'); } else { if ($decode->{'code'} == "p-20009") { $respt = array('firtname' => $firt_name, 'lastname' => $last_name, 'email' => $email, 'password' => $password, 'message' => 'el e-mail ya se encuentra asociado a una cuenta!'); $message_sign_in = $this->getUser()->setAttribute('message_sign_in', $respt); $conection->rollBack(); $this->redirect('@homepage'); } else { $this->message = 'error en practil--' . $url . '--'; $conection->rollBack(); return sfView::ERROR; } } } } else { $conection->rollBack(); $this->message = 'error en url'; return sfView::ERROR; } } catch (Exception $e) { $conection->rollBack(); $this->message = 'error en try'; return sfView::ERROR; } }