Exemplo n.º 1
0
 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());
 }
Exemplo n.º 2
0
 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()));
 }
Exemplo n.º 3
0
 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');
 }
Exemplo n.º 4
0
 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');
 }
Exemplo n.º 5
0
 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;
 }
Exemplo n.º 6
0
 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');
 }
Exemplo n.º 7
0
 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)));
 }