/** * Méthode permettant de traiter le formulaire * et d'enregistrer la news en DB * * @param HTTPRequest $request * @return void */ 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 { // Transmission de l'identifiant de la news en cas de modification if ($request->getExists('id')) { $news = $this->managers->getManagerOf('News')->getUnique($request->getData('id')); } else { $news = new News(); } } $formBuilder = new NewsFormBuilder($news); $formBuilder->build(); $form = $formBuilder->form(); $formHandler = new FormHandler($form, $this->managers->getManagerOf('News'), $request); if ($formHandler->process()) { $this->app->user()->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()); }
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->managers->getManagerOf('News')->getUnique($request->getData('id')); } else { $news = new News(); } } $formBuilder = new NewsFormBuilder($news); $formBuilder->build(); $form = $formBuilder->form(); // On récupère le gestionnaire de formulaire (le paramètre de getManagerOf() est bien entendu à remplacer). $formHandler = new \OCFram\FormHandler($form, $this->managers->getManagerOf('News'), $request); if ($formHandler->process()) { // Ici ne résident plus que les opérations à effectuer une fois l'entité du formulaire enregistrée // (affichage d'un message informatif, redirection, etc.). $this->app->user()->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()); }
public function processForm(HTTPRequest $request) { if (!$this->app()->user()->isAuthenticated()) { $this->app->user()->setFlash('Connectez vous ou inscrivez vous pour accéder à cette section'); $this->app->httpResponse()->redirect('/'); } if ($request->method() == 'POST') { $news = new News(['auteur' => $this->app()->user()->member()->id(), 'titre' => $request->postData('titre'), 'contenu' => $request->postData('contenu'), 'tags' => $request->postData('tags')]); 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->managers->getManagerOf('News')->getUnique($request->getData('id'), true); if ($news == NULL) { $this->generateOtherPage('error', 'La news n°' . $request->getData('id') . ' n\'existe pas'); return; } } else { $news = new News(); } } $formBuilder = new NewsFormBuilder($news); $formBuilder->build(); $form = $formBuilder->form(); $formHandler = new FormHandler($form, $this->managers->getManagerOf('News'), $request); if ($formHandler->process()) { $this->app->user()->setFlash($news->isNew() ? 'La news a bien été ajoutée !' : 'La news a bien été modifiée !'); $this->app->httpResponse()->redirect('/'); } $this->managers->getManagerOf('News')->saveTags($news); $this->page->addVar('form', $form->createView()); $this->page()->addVar('user', $this->app()->user()); }
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->managers->getManagerOf('News')->getUnique($request->getData('id')); } else { $news = new News(); } } $formBuilder = new NewsFormBuilder($news); $formBuilder->build(); $form = $formBuilder->form(); $formHandler = new FormHandler($form, $this->managers->getManagerOf('News'), $request); if ($formHandler->process()) { if ($news->isNew()) { $news->setId($request->getData('id')); // Suppression des caches si la news est nouvelle $cache = new Cache($news); $cache->unlinkDataAndShowCaches(); $cache->unlinkIndexCache(); } else { // Suppression des caches si la news est modifiée $cache = new Cache(null, $news); $cache->unlinkDataAndShowCaches(); } $this->app->user()->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()); }