public function create(callable $onSuccess)
{
$form = $this->factory->create();
$form->addText('username', 'Pick a username:')->setRequired('Please pick a username.');
$form->addEmail('email', 'Your e-mail:')->setRequired('Please enter your e-mail.');
$form->addPassword('password', 'Create a password:')->setOption('description', sprintf('at least %d characters', self::PASSWORD_MIN_LENGTH))->setRequired('Please create a password.')->addRule($form::MIN_LENGTH, NULL, self::PASSWORD_MIN_LENGTH);
$form->addSubmit('send', 'Sign up');
$form->onSuccess[] = function (Form $form, $values) use($onSuccess) {
try {
$this->userManager->add($values->username, $values->email, $values->password);
} catch (Model\DuplicateNameException $e) {
$form['username']->addError('Username is already taken.');
return;
}
$onSuccess();
};
return $form;
}
/** * Sign-up form factory. * @return Nette\Application\UI\Form */ protected function createComponentSignUpForm() { // $httpRequest = $this->getHttpRequest(); $params = $this->params; $to = NULL; if (array_key_exists('to', $params)) { $to = $params['to']; } $form = $this->factoryUp->create($to); $form->onSuccess[] = function ($form) { $httpRequest = $form->getPresenter()->getHttpRequest(); $httpResponse = $form->getPresenter()->getHttpResponse(); $cookie = $httpRequest->getCookie('to'); $cookieTest = $httpRequest->getCookie('toTest'); if (!empty($cookie)) { if ($cookie == 'new') { $httpResponse->deleteCookie('to'); $form->getPresenter()->redirect('Test:new'); } if ($cookie == 'test') { $httpResponse->deleteCookie('to'); $form->getPresenter()->redirect('Test:test', array('id' => $cookieTest)); } } else { $form->getPresenter()->redirect('Admin:'); } }; return $form; }