예제 #1
0
 public function executeComments(HTTPRequest $request)
 {
     $this->run();
     $id = $request->getData('id');
     $manager = $this->managers->getManagerOf('Member');
     // Récupéré l'id du membre que l'on veux voir, et avec récupérer le nom, puis appliquer ce que l'on souhaite dans membre
     $auteur = $manager->getusername($id);
     if ($auteur == false) {
         $id = $manager->getId($id);
         if ($id != false) {
             $auteur = $manager->getusername($id);
         } else {
             $id = $request->getData('id');
         }
     }
     $this->page->addVar('auteur', $auteur);
     if ($auteur === false) {
         $auteur = $id;
     }
     $manager = $this->managers->getManagerOf('Comments');
     $this->page->addVar('id', $id);
     $this->page->addVar('title', 'Mes commentaires');
     $this->page->addVar('comments', $manager->getListOfMember($auteur));
     $this->page->addVar('number', $manager->countCountMember($auteur));
 }
예제 #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->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());
 }
예제 #3
0
 public function executeDelete(HTTPRequest $request)
 {
     $MemberId = $request->getData('id');
     $this->managers->getManagerOf('Member')->delete($MemberId);
     if ($this->app->user()->getAttribute('user')->id() == $MemberId) {
         $this->app->httpResponse()->redirect('/admin/deconnexion.html');
     }
     $this->app->user()->setFlash('L\'utilisateur a bien été supprimé !');
     $this->app->httpResponse()->redirect('/admin/members.html');
 }
예제 #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();
     $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');
 }
예제 #5
0
 public function executeShow(HTTPRequest $Request)
 {
     $Member = $this->managers->getManagerOf('Member')->getUnique($Request->getData('member_id'));
     if ($Member->id() == 0) {
         $this->app->httpResponse()->redirect404();
     }
     $this->run();
     $CommentsManager = $this->managers->getManagerOf('Comments');
     $Comments_a = $CommentsManager->getCommentsUsingMemberId($Request->getData('member_id'));
     $Member->commentscount = $CommentsManager->countUsingMemberId($Request->getData('member_id'));
     $NewsManager = $this->managers->getManagerOf('News');
     $News_a = $NewsManager->getListUsingMemberId($Request->getData('member_id'));
     foreach ($News_a as $News) {
         $News->commentscount = $CommentsManager->countUsingNewsId($News->id());
     }
     $Router = new Router();
     $this->page->addVar('Member', $Member);
     $this->page->addVar('Comments_a', $Comments_a);
     $this->page->addVar('News_a', $News_a);
     $this->page->addVar('Router', $Router);
 }
 public function executeShow(HTTPRequest $request)
 {
     $memberManager = $this->managers->getManagerOf('Members');
     /** @var $member Member        */
     if (!($idMember = $memberManager->checkPseudoExist($request->getData('pseudo')))) {
         $this->app->httpResponse()->redirect404();
     }
     $member = $memberManager->getUnique($idMember);
     $this->page->addVar('member', $member);
     $this->page->addVar('nbMessages', $this->managers->getManagerOf('Comments')->countByMember($idMember));
     $this->page->addVar('nbNews', $this->managers->getManagerOf('News')->countByMember($idMember));
     $this->run();
 }
예제 #7
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');
 }
예제 #8
0
 public function executeShowTag(HTTPRequest $request)
 {
     $this->run();
     $managertag = $this->managers->getManagerOf('Tag');
     // Si le numéro de tag exist :
     $idtag = $request->getData('id');
     $tagname = $managertag->getname($idtag);
     if ($tagname != false) {
         $ListTag = $managertag->getListOfNews($idtag);
         $this->page->addVar('ListNewsTag', $ListTag);
         $this->page->addVar('nametag', $tagname);
     } else {
         $this->page->addVar('undefined', 1);
     }
 }
예제 #9
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()));
 }
 /**
  * Méthode pour l'action deleteComment
  * Le contrôleur se charge d'invoquer
  * la méthode du manager qui supprimera le commentaire (delete)
  * L'utilisateur est ensuite redirigé vers l'index admin
  * avec affichage d'un message au rechargement de la page
  * Cette action ne possède aucune vue
  * 
  * @param HTTPRequest $request
  * @return void
  */
 public function executeDeleteComment(HTTPRequest $request)
 {
     $this->managers->getManagerOf('Comments')->delete($request->getData('id'));
     $this->app->user()->setFlash('Le commentaire a bien été supprimé !');
     $this->app->httpResponse()->redirect('.');
 }
예제 #11
0
 public function executeTagShow(HTTPRequest $request)
 {
     $nombreNews = $this->app->config()->get('nombre_news');
     $nombreCaracteres = $this->app->config()->get('nombre_caracteres');
     // On ajoute une définition pour le titre.
     $this->page->addVar('title', 'Liste des news parlant de ' . $request->getData('tag'));
     // On récupère le manager des news.
     $manager = $this->managers->getManagerOf('News');
     $listeNews = $manager->getListByTag($request->getData('tag'), 0, $nombreNews);
     foreach ($listeNews as $news) {
         if (strlen($news->contenu()) > $nombreCaracteres) {
             $debut = substr($news->contenu(), 0, $nombreCaracteres);
             $debut = substr($debut, 0, strrpos($debut, ' ')) . '...';
             $news->setContenu($debut);
         }
     }
     // On ajoute la variable $listeNews à la vue.
     $this->page->addVar('listeNews', $listeNews);
     $this->run();
 }
예제 #12
0
 public function executeTest(HTTPRequest $request)
 {
     $this->page->addVar('test', $request->getData('id'));
     echo 'test ';
     echo $request->getData('id');
 }
예제 #13
0
 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->app()->httpResponse()->redirect404();
             }
         } 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());
 }
예제 #14
0
 public function executeDeleteCommentUsingAjax(HTTPRequest $Request)
 {
     $CommentManager = $this->managers->getManagerOf('Comments');
     $Comment = $CommentManager->getUnique($Request->getData('comment_id'));
     $this->page->setTemplate('jsonLayout.php');
     if (!$Comment) {
         $this->page->addVar('ajax', json_encode(array('success' => false, 'erreurs' => 'Le commentaire n\'existe pas !')));
         return;
     }
     $Membre = $this->app->user()->getAttribute('user');
     if ($Comment->auteurId() != $Membre->id() && $Membre->level() != MemberManager::ADMINISTRATOR) {
         $this->page->addVar('ajax', json_encode(array('success' => false, 'erreurs' => 'Droits insuffisants')));
         return;
     }
     $CommentManager->delete($Request->getData('comment_id'));
     $this->page->addVar('ajax', json_encode(array('success' => true, 'validation_message' => 'Votre message a bien été supprimé')));
 }