public function executeUpdateComment(HTTPRequest $request) { $this->page->addVar('title', 'Modification d\'un commentaire'); if ($request->method() == 'POST') { $comment = new Comment(['id' => $request->getData('id'), 'auteur' => $request->postData('auteur'), 'contenu' => $request->postData('contenu')]); } else { $comment = $this->managers->getManagerOf('Comments')->get($request->getData('id')); } $formBuilder = new CommentFormBuilder($comment); $formBuilder->build(); $form = $formBuilder->form(); $formHandler = new FormHandler($form, $this->managers->getManagerOf('Comments'), $request); if ($formHandler->process()) { $this->app->user()->setFlash('Le commentaire a bien été modifié'); $this->app->httpResponse()->redirect('/admin/'); } $this->page->addVar('form', $form->createView()); }
public function executeShow(HTTPRequest $request) { $news = $this->managers->getManagerOf('News')->getUnique($request->getData('id')); if (empty($news)) { $this->app->httpResponse()->redirect404(); $this->run(); } // Si le formulaire a été envoyé. if ($request->method() == 'POST') { $Comment = new Comment(['newsId' => $request->getData('news_id'), 'auteurId' => $this->app->user()->getAttribute('user')->id(), 'contenu' => $request->postData('contenu')]); } else { $Comment = new Comment(); } $formBuilder = new CommentFormBuilder($Comment); $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('Comments'), $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('Le commentaire a bien été ajouté, merci !'); $this->app->httpResponse()->redirect('../news-' . $request->getData('news_id') . '.html'); } $Router = new Router(); $form_action = $Router->getUrl('Backend', 'News', 'insertComment', array('news_id' => $request->getData('id'))); $form_action_ajax_validation = $Router->getUrl('Backend', 'News', 'insertCommentUsingAjax', array('news_id' => $request->getData('id'))); $jsFiles_a = array(); $jsFiles_a[] = '<script type="text/javascript" src="/js/CommentInsertUsingAjax.js"></script>'; $news_id = $request->getData('id'); $this->run(); $this->page->addVar('news_id', $news_id); $this->page->addVar('form_action', $form_action); $this->page->addVar('form_action_ajax_validation', $form_action_ajax_validation); $this->page->addVar('comment', $Comment); $this->page->addVar('form', $form->createView()); $this->page->addVar('title', 'Ajout d\'un commentaire'); $this->page->addVar('jsFiles_a', $jsFiles_a); $this->page->addVar('router', new Router()); $this->page->addVar('title', $news->titre()); $this->page->addVar('news', $news); $this->page->addVar('comments', $this->managers->getManagerOf('Comments')->getListOf($news->id())); }
public function executeInsertComment(HTTPRequest $request) { // Si le formulaire a été envoyé. if ($request->method() == 'POST') { $comment = new Comment(['news' => $request->getData('news'), 'auteur' => $request->postData('auteur'), 'contenu' => $request->postData('contenu')]); } else { $comment = new Comment(); } $formBuilder = new CommentFormBuilder($comment); $formBuilder->build(); $form = $formBuilder->form(); $formHandler = new FormHandler($form, $this->managers->getManagerOf('Comments'), $request); if ($formHandler->process()) { $this->app->user()->setFlash('Le commentaire a bien été ajouté, merci !'); $this->app->httpResponse()->redirect('news-' . $request->getData('news') . '.html'); } $this->page->addVar('comment', $comment); $this->page->addVar('form', $form->createView()); $this->page->addVar('title', 'Ajout d\'un commentaire'); }
public function executeInsertComment(HTTPRequest $request) { // Si le formulaire a été envoyé. if ($request->method() == 'POST') { $comment = new Comment(['news' => $request->getData('news'), 'auteur' => $request->postData('auteur'), 'contenu' => $request->postData('contenu')]); } else { $comment = new Comment(); } $formBuilder = new CommentFormBuilder($comment); $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('Comments'), $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('Le commentaire a bien été ajouté, merci !'); $this->app->httpResponse()->redirect('news-' . $request->getData('news') . '.html'); } $this->page->addVar('comment', $comment); $this->page->addVar('form', $form->createView()); $this->page->addVar('title', 'Ajout d\'un commentaire'); }
public function executeTestInsertComment(HTTPRequest $request) { if ($request->method() == 'POST') { $comment = new Comment(['news' => $request->getData('news'), 'auteur' => $request->postData('auteur'), 'email' => $request->postData('email'), 'contenu' => $request->postData('contenu')]); } else { $comment = new Comment(); } if (!$this->managers->getManagerOf('News')->getUnique($request->getData('news'))) { if ($request->method() == 'POST') { $this->app()->user()->setFlash('La news a été supprimée pendant que vous la commentiez, désolé !'); } $this->generateOtherPage('error', 'La news n°' . $request->getData('news') . ' n\'existe pas'); return; } $formBuilder = new CommentFormBuilder($comment); $formBuilder->build($this->app()->user()->isAuthenticated(), $this->managers->getManagerOf('Members'), $this->app()->user()->isAuthenticated() ? $this->app()->user()->member()->id() : null); $form = $formBuilder->form(); $formHandler = new FormHandler($form, $this->managers->getManagerOf('Comments'), $request); echo json_encode($formHandler->processJSON()); exit; }
public function executeInsertComment(HTTPRequest $request) { //ajout menu navigateur $this->run(); // si la news dans laquelle on veut insérer n'existe pas, redirection $news = $this->managers->getManagerOf('News')->getUnique($request->getData('news')); if ($news == null) { $this->app->httpResponse()->redirect404(); } // Si le formulaire a été envoyé. if ($request->method() == 'POST') { if (isset($_SESSION['user'])) { $comment = new Comment(['news' => $request->getData('news'), 'auteur' => $this->app->user()->getAttribute('user'), 'mail' => $this->managers->getManagerOf('Member')->getMail($this->app->user()->getAttribute('user')), 'contenu' => $request->postData('contenu')]); } else { $comment = new Comment(['news' => $request->getData('news'), 'auteur' => $request->postData('auteur'), 'mail' => $request->postData('mail'), 'contenu' => $request->postData('contenu')]); } } else { $comment = new Comment(); } $formBuilder = new CommentFormBuilder($comment); $formBuilder->build(); $form = $formBuilder->form(); $formHandler = new FormHandler($form, $this->managers->getManagerOf('Comments'), $request); if ($formHandler->process()) { $this->app->user()->setFlash('Le commentaire a bien été ajouté, merci !'); $vars = array(); $vars['id'] = $request->getData('news'); $this->app->httpResponse()->redirect($this->app->router()->getBuiltRoute('News', 'show', $vars)); //$this->app->httpResponse()->redirect('news-'.$request->getData('news').'.html'); } $this->page->addVar('comment', $comment); $this->page->addVar('form', $form->createView()); $this->page->addVar('title', 'Ajout d\'un commentaire'); }
public function executeUpdateCommentUsingAjax(HTTPRequest $Request) { $ManagerComment = $this->managers->getManagerof('Comments'); $Comment = $ManagerComment->getUnique($Request->getData('comment_id')); $Membre = $this->app->user()->getAttribute('user'); $this->page->setTemplate('jsonLayout.php'); if (!$Comment) { $this->page->addVar('ajax', json_encode(array('success' => false, 'erreurs' => 'Le commentaire n\'existe pas !'))); return; } if ($Comment->Membre()->id() != $Membre->id() && $Membre->level() != MemberManager::ADMINISTRATOR) { $this->page->addVar('ajax', json_encode(array('success' => false, 'erreurs' => 'Droits insuffisants'))); return; } $CommentPosted = new Comment(); $CommentPosted->setId($Request->getData('comment_id')); $CommentPosted->setAuteurId($this->app->user()->getAttribute('user')->id()); $CommentPosted->setContenu($Request->postData('contenu')); $FormBuilder = new CommentFormBuilder($CommentPosted); $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, $ManagerComment, $Request); if (!$FormHandler->process()) { $errors_a = []; foreach ($Form->fields() as $Field) { $Field->isValid(); $errors_a[$Field->id()] = $Field->errorMessage(); } $this->page->setTemplate('jsonLayout.php'); $this->page->addVar('ajax', json_encode(array('success' => false, 'erreurs' => $errors_a))); return; } $CommentPosted = $ManagerComment->getUnique($CommentPosted->id()); $this->page->addVar('ajax', json_encode(array('success' => true, 'comment' => $CommentPosted))); }