/** * Render widget * * @param array $params * @param array $smarty * @return void */ function smarty_function_form_register($params, $smarty) { global $controller; $formRegister = new Form_Register(); $formConfirm = new Form_Confirm(); $userService = $controller->getHelper('service')->getService('user'); $session = new Zend_Session_Namespace('Form_Register'); $request = $controller->getRequest(); if ($request->isPost()) { $request->setPost('password', $session->password); if ($formRegister->isValid($request->getPost())) { // handle confirm form if ($request->has('username') && $formConfirm->isValid($request->getPost())) { $values = $formConfirm->getValues(); $values['password'] = empty($values['password_change']) ? $session->password : $values['password_change']; $user = $userService->create($values); $dispatcher = $controller->getHelper('service')->getService('dispatcher'); $dispatcher->dispatch('user.register', new GenericEvent($smarty, array('user' => $user))); $controller->getHelper('redirector')->gotoSimple('index', 'index', 'default'); } elseif (!$request->has('username')) { // init confirm form $values = $formRegister->getValues(); $session->password = $values['password']; $values['username'] = $userService->generateUsername($values['first_name'], $values['last_name']); $formConfirm->setDefaults($values + array('terms_of_services' => 'Terms of services text')); } echo $formConfirm; return; } } else { $session->password = null; } echo $formRegister; }
public function rejestracjaAction() { $form = new Form_Register(); $request = $this->getRequest(); if ($request->isPost()) { if ($form->isValid($this->_request->getPost())) { $data = $form->getValues(); $model = new Model_User(); $model->setFirstname($data['firstname']); $model->setLastname($data['lastname']); $model->setUsername($data['username']); $model->setPassword(md5($data['password'])); $model->setEmail($data['email']); $mapper = Model_UserMapper::getInstance(); $mapper->save($model); $this->createConfig($data['username']); $server = new Zend_View_Helper_ServerUrl(); $server->setScheme('http'); $this->_redirect($server->serverUrl($this->view->url(array('controller' => 'autentykacja', 'action' => 'logowanie')))); // $this->_redirect('/autentykacja/logowanie'); } else { $this->view->errorMessage = 'Nie uzupełniono wymaganych pól.'; } } $this->view->form = $form; }