public function newWriterFormSucceeded($form, $values) { if (!$this->presenter->user->isLoggedIn()) { try { $this->captchaManager->checkCaptcha($values->captcha); } catch (\Exception $e) { $this->presenter->flashMessage($e->getMessage()); $this->presenter->redirect('this'); } $values->byUser = null; } else { $values->contact = $this->presenter->user->getIdentity()->mail; $values->byUser = $this->presenter->user->id; } try { $this->articleManager->addNewWriter($values); } catch (\Exception $e) { $form->addError($e->getMessage()); } }
/** * @param string $name * @param Selection $selection * @param bool $processForm * @return mixed * @throws FormNotExistsException */ public function create($name, Selection $selection, $processForm = TRUE) { $className = '\\App\\AdminModule\\Form\\' . $name; if (!class_exists($className)) { throw new FormNotExistsException("Form class {$className} does not exist!"); } if ($this->presenter === NULL) { throw new InvalidArgumentException('Presenter must be set!'); } $form = new $className($this->db, $selection); if ($processForm) { $form->onSuccess[] = function ($form) { $form->process(); if ($form->valid && !$form->hasErrors()) { $this->presenter->flashMessage('Úspěšně uloženo', 'success'); $this->presenter->redirect('this'); } }; } return $form; }