示例#1
0
 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());
     }
 }
示例#2
0
 /**
  * @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;
 }