/** * Create factory. * @param class * @return Forms */ public function create($translator) { $form = $this->forms->create($translator); $form->addText('website', 'settings.name')->setAttribute('placeholder', 'settings.name.place')->setRequired('settings.empty'); $form->addText('description', 'settings.description')->setAttribute('placeholder', 'settings.description.place')->setRequired('settings.empty'); $form->addSubmit('send', 'settings.send'); $form->onSuccess[] = [$this, 'processing']; return $form; }
/** * Create factory. * @param class * @return Form */ public function create($translator, callable $onSuccess) { $form = $this->forms->create($translator); $form->addText('email', 'login.email')->setType('email')->setRequired('login.empty')->setAttribute('placeholder', 'login.email.place')->addRule(Form::EMAIL, 'login.email.invalid'); $form->addPassword('password', 'login.pass')->setAttribute('placeholder', 'login.pass.place')->setRequired('login.empty'); $form->addSubmit('send', 'login.send'); $form->onSuccess[] = function (Form $form, $values) use($onSuccess) { try { $this->user->login($values->email, $values->password); } catch (Nette\Security\AuthenticationException $e) { if ($e->getCode() == 1) { $form->addError('login.user.invalid'); } elseif ($e->getCode() == 2) { $form->addError('login.pass.invalid'); } return; } $onSuccess(); }; return $form; }
/** * Factory for registration administration account. * @param class Translator * @param callable * @return Form */ public function registrationAccount($translator, callable $onSuccess) { $form = $this->forms->create($translator); $form->addText('realname', 'install.acc.name')->setRequired('install.form.empty'); $form->addText('email', 'install.acc.email')->setDefaultValue('@')->setType('email')->setRequired('install.form.empty')->addRule(Form::EMAIL, 'install.acc.email.invalid'); $form->addPassword('password', 'install.acc.pass')->setRequired('install.form.empty')->addRule(Form::MIN_LENGTH, 'install.acc.pass.min', 6); $form->addPassword('verify', 'install.acc.pass.verify')->setRequired('install.form.empty')->addRule(Form::EQUAL, 'install.acc.pass.verify.invalid', $form['password']); $form->addSubmit('send', 'install.acc.send'); $form->onSuccess[] = function (Form $form) use($onSuccess) { // Form processing. $values = $form->getValues(); $table = $this->getTablePrefix() . 'users'; // Hash password. $values->password = Passwords::hash($values->password); // Delete unneeded values. unset($values->verify, $values->prefix); // Insert records into the database. $this->query->addValues($table, $values); // Save the installation step into the cache. $this->steps->setToCache(Steps::Step4, rand(1, 9)); $onSuccess(); }; return $form; }