Beispiel #1
0
 /**
  * Méthode permettant d'enregistrer une news.
  * @param $news News la news à enregistrer
  * @see self::add()
  * @see self::modify()
  * @return void
  */
 public function save(News $news)
 {
     if ($news->isValid()) {
         if ($news->isNew()) {
             return $this->add($news);
         }
         $this->modify($news);
     } else {
         throw new \RuntimeException('La news doit être validée pour être enregistrée');
     }
 }
Beispiel #2
0
 public function processForm(HTTPRequest $request)
 {
     if ($request->method() == 'POST') {
         $news = new News(['auteur' => $request->postData('auteur'), 'titre' => $request->postData('titre'), 'contenu' => $request->postData('contenu')]);
         if ($request->getExists('id')) {
             $news->setId($request->getData('id'));
         }
     } else {
         // L'identifiant de la news est transmis si on veut la modifier
         if ($request->getExists('id')) {
             $news = $this->getManagerOf($this->module(), 'News')->getUnique($request->getData('id'));
         } else {
             $news = new News();
         }
     }
     $formBuilder = new NewsFormBuilder($news);
     $formBuilder->build();
     $form = $formBuilder->form();
     $formHandler = new FormHandler($form, $this->getManagerOf($this->module(), 'News'), $request);
     if ($formHandler->process()) {
         $this->app->session()->setFlash($news->isNew() ? 'La news a bien été ajoutée !' : 'La news a bien été modifiée !');
         $this->app->httpResponse()->redirect('/admin/');
     }
     $this->page->addVar('form', $form->createView());
 }