Ejemplo n.º 1
0
 public function onSuccess(Article $article)
 {
     $article->setUser($this->user);
     // On met l'article à la date courante
     $article->setDate(new \DateTime('now'));
     $this->em->persist($article);
     // On fait appel au DataTranformer pour découper la chaine de tags, puis on les enregistre
     //$this->em->getRepository('HeliosBlogBundle:Tag')->findAll();
     foreach ($article->getTags() as $tag) {
         $this->em->persist($tag);
     }
     /*// --- Début de notre fonctionnalité BigBrother ---
             // On crée l'évènement
             $event = new MessagePostEvent($article->getContenu(), $this->getUser());
     
             // On déclenche l'évènement
             $this->get('event_dispatcher')
                 ->dispatch(BigbrotherEvents::onMessagePost, $event);
     
             // On récupère ce qui a été modifié par le ou les listener(s), ici le message
             $article->setContenu($event->getMessage());
             // --- Fin de notre fonctionnalité BigBrother ---
     
             $article->getArticleCompetences()->clear();
     
             // On enregistre l'objet $article dans la base de données
             $em->persist($article);
             $em->flush();
     
             foreach ($form->get('articleCompetences')->getData() as $ac) {
                 $ac->setArticle($article);
                 $em->persist($ac);
             }
             $em->flush();
     
             // On définit un message flash
             $this->get('session')->getFlashBag()->add('info', 'Article bien ajouté');
     
             // On redirige vers la page de visualisation de l'article nouvellement créé
             return $this->redirect($this->generateUrl('heliosblog_accueil', array('blog' => $request->get('blog'))));
     */
     $this->em->flush();
 }
Ejemplo n.º 2
0
 public function modifierAction(Article $article)
 {
     $listeAc = array();
     foreach ($article->getArticleCompetences() as $ac) {
         $listeAc[] = $ac;
     }
     // On utilise le ArticleEditType
     $form = $this->createForm(new ArticleEditType(), $article);
     $request = $this->getRequest();
     if ($request->getMethod() == 'POST') {
         $form->bind($request);
         if ($form->isValid()) {
             $article->getArticleCompetences()->clear();
             // On enregistre l'article
             $em = $this->getDoctrine()->getManager();
             $em->persist($article);
             $em->flush();
             foreach ($form->get('articleCompetences')->getData() as $ac) {
                 $ac->setArticle($article);
                 $em->persist($ac);
             }
             // Et on supprime les articleCompetences qui existaient au début mais plus maintenant
             foreach ($listeAc as $originalAc) {
                 foreach ($form->get('articleCompetences')->getData() as $ac) {
                     // Si $originalAc existe dans le formulaire, on sort de la boucle car pas besoin de la supprimer
                     if ($originalAc == $ac) {
                         continue 2;
                     }
                 }
                 // $originalAc n'existe plus dans le formulaire, on la supprime
                 $em->remove($originalAc);
             }
             $em->flush();
             // On définit un message flash
             $this->get('session')->getFlashBag()->add('info', 'Article bien modifié');
             return $this->redirect($this->generateUrl('heliosblog_accueil', array('blog' => $request->get('blog'))));
         }
     }
     return $this->render('HeliosBlogBundle:Blog:modifier.html.twig', array('form' => $form->createView(), 'article' => $article));
 }
Ejemplo n.º 3
0
 public function setArticle(\Helios\BlogBundle\Entity\Article $article)
 {
     $article->addArticleCompetence($this);
     $this->article = $article;
 }