示例#1
0
 public function add(Tagd $tagd)
 {
     $q = $this->dao->prepare('INSERT INTO T_NEW_tagd SET NTD_fk_NTC = :idtag, NTD_fk_new = :idnew');
     $q->bindValue(':idtag', $tagd->Idtag());
     $q->bindValue(':idnew', $tagd->Idnew());
     $q->execute();
 }
示例#2
0
 public function save(Tagd $tagd)
 {
     if ($tagd->isValid()) {
         $tagd->isNew() ? $this->add($tagd) : true;
     } else {
         throw new \RuntimeException('Le commentaire doit être validé pour être enregistré');
     }
 }
示例#3
0
 public function processForm(HTTPRequest $request)
 {
     $this->run();
     //manager news
     $managersNews = $this->managers->getManagerOf('News');
     // manager tag
     $managersTag = $this->managers->getManagerOf('Tag');
     if ($request->method() == 'POST') {
         // Éléménet News
         $news = new News(['auteur' => $this->app->user()->getAttribute('user'), 'titre' => $request->postData('titre'), 'contenu' => $request->postData('contenu')]);
         // Élément Tag
         if ($request->postData('name') != '') {
             $tag = new Tag(['name' => $request->postData('name')]);
             $table = NewsController::separateTag($tag->name());
             //vraiment ici ?
             //on sauvegarde tout les tags rentré si ils n'existes pas !
         } else {
             $tag = new Tag();
         }
         if ($request->getExists('id')) {
             $news->setId($request->getData('id'));
             $tag = new Tag();
         }
     } else {
         // L'identifiant de la news est transmis si on veut la modifier
         if ($request->getExists('id')) {
             $news = $managersNews->getUnique($request->getData('id'));
             $text = '';
             foreach ($managersTag->getUnique($request->getData('id')) as $value) {
                 $text = $text . ' ' . $value['NTC_name'];
             }
             $tag = new Tag(['name' => $text]);
             if ($news == null) {
                 $this->app->httpResponse()->redirect404();
             }
         } else {
             $news = new News();
             $tag = new Tag();
         }
     }
     //construction formulaire news
     $formBuilderNews = new NewsMemberFormBuilder($news);
     $formBuilderNews->build();
     $formNews = $formBuilderNews->form();
     $formHandlerNews = new FormHandler($formNews, $managersNews, $request);
     //Construction formulaire Tag
     $formBuilderTag = new TagFormBuilder($tag);
     // même formbuilder ?
     $formBuilderTag->build($managersTag);
     $formTag = $formBuilderTag->form();
     // manager tagd
     $managersTagd = $this->managers->getManagerOf('Tagd');
     if ($formHandlerNews->process()) {
         //Refaire proprement le handler pour les tags
         $this->app->user()->setFlash($news->isNew() ? 'La news a bien été ajoutée !' : 'La news a bien été modifiée !');
         // récupérer le dernier id de news
         if ($news->isNew()) {
             $news->setId($managersNews->getlastid());
         }
         //var_dump($news->id());
         NewsController::saveTag($table, $managersTag);
         foreach ($table as $key => $value) {
             $idtag = $managersTag->getId($value);
             $tagd = new Tagd();
             $tagd->setIdnew($news->id());
             $tagd->setIdtag($idtag);
             $managersTagd->add($tagd);
         }
         $this->app->httpResponse()->redirect($this->app->router()->getBuiltRoute('News', 'index', []));
     }
     $this->page->addVar('formNews', $formNews->createView());
     $this->page->addVar('formTag', $formTag->createView());
 }