protected function modify(News $news) { $requete = $this->dao->prepare('UPDATE news SET auteur = :auteur, titre = :titre, contenu = :contenu, dateModif = NOW() WHERE id = :id'); $requete->bindValue(':titre', $news->titre()); $requete->bindValue(':auteur', $news->auteur()); $requete->bindValue(':contenu', $news->contenu()); $requete->bindValue(':id', $news->id(), \PDO::PARAM_INT); $requete->execute(); }
public function saveTags(News $news) { $this->deleteTags($news->id()); if (str_replace(' ', '', $news->tags()) == '') { return; } $query = 'INSERT INTO T_NEW_tagc (NTC_name) SELECT name FROM ('; foreach ($news->tagsArray() as $key => $tag) { $query .= ($key === 0 ? '' : ' UNION ') . 'SELECT ' . $this->dao->quote($tag) . ' AS name'; } $query .= ') AS A LEFT OUTER JOIN T_NEW_tagc AS B ON A.name = B.NTC_name WHERE B.NTC_id IS NULL'; //echo $query; // var_dump($query); $this->dao->exec($query); $requete = 'INSERT INTO t_new_tagd (NTD_fk_NNC, NTD_fk_NTC) SELECT ' . (int) $news->id() . ', NTC_id FROM T_NEW_tagc WHERE NTC_name IN('; foreach ($news->tagsArray() as $key => $tag) { $requete .= ($key === 0 ? '' : ',') . $this->dao->quote($tag); } $this->dao->exec($requete . ');'); }
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()); }
protected function modify(News $news) { $requete = $this->dao->prepare('UPDATE t_for_newsc SET FNC_title = :titre, FNC_content = :contenu, FNC_dateupdate = NOW() WHERE FNC_id = :id'); $requete->bindValue(':titre', $news->titre(), \PDO::PARAM_STR); $requete->bindValue(':contenu', $news->contenu(), \PDO::PARAM_STR); $requete->bindValue(':id', $news->id(), \PDO::PARAM_INT); $requete->execute(); }