Пример #1
0
 public function addAction(Request $request)
 {
     if (!$this->get('security.context')->isGranted('ROLE_INVITE')) {
         throw new AccessDeniedException('Accès limité aux personnes autorisées à écrire un article.');
     }
     $article = new article();
     $user = $this->getUser();
     $article->setAuteur($user->getUsername());
     $form = $this->createForm(new articleType(), $article);
     if ($form->handleRequest($request)->isValid()) {
         // enregistrer l'article
         $em = $this->getDoctrine()->getManager();
         $em->persist($article);
         $em->flush();
         $request->getSession()->getFlashBag()->add('notice', 'Article bien enregistré.');
         //recherche des commentaires associés
         $qb = $em->getRepository('VFBlogBundle:Commentaire')->createQueryBuilder('c');
         $results = $qb->select('c.id')->where('c.article = :idarticle')->setParameter('idarticle', $article->getId())->orderBy('c.date', 'DESC')->getQuery()->getResult();
         $comm = array();
         for ($i = 0; $i < count($results); $i += 1) {
             $c = $em->getRepository('VFBlogBundle:Commentaire')->find($results[$i]);
             $comm[] = $c;
         }
         //envoi de mail
         $user = $this->getUser();
         $message = \Swift_Message::newInstance()->setSubject($user->getUsername() . ' a écrit un nouvel article.')->setFrom('*****@*****.**')->setTo('*****@*****.**')->setCc('*****@*****.**')->setBody($this->renderView('VFBlogBundle:Article:email.txt.twig', array('article' => $article, 'comm' => $comm)));
         $users = $em->getRepository('VFUserBundle:User')->findAll();
         for ($i = 0; $i < count($users); $i += 1) {
             //$message->addCc($users[$i]->getEmailCanonical());
             $message->addCc('*****@*****.**');
         }
         $this->get('mailer')->send($message);
         $request->getSession()->getFlashBag()->add('notice', 'Le message de création de l\'article a bien été envoyé par courriel');
         return $this->render('VFBlogBundle:Article:voir.html.twig', array('article' => $article, 'comm' => $comm, 'user' => $user));
     }
     // À ce stade :
     // - Soit la requête est de type GET, donc le visiteur vient d'arriver sur la page et veut voir le formulaire
     // - Soit la requête est de type POST, mais le formulaire n'est pas valide, donc on l'affiche de nouveau
     return $this->render('VFBlogBundle:Article:formArticle.html.twig', array('form' => $form->createView(), 'article' => $article, 'user' => $user));
 }
 /**
  * {@inheritDoc}
  */
 public function getEtat()
 {
     $this->__initializer__ && $this->__initializer__->__invoke($this, 'getEtat', []);
     return parent::getEtat();
 }