Example #1
0
 public function commentAction($id, Request $request)
 {
     $generalite = $this->general();
     if (!$request->isxmlhttprequest()) {
         die('bien essayé!');
     }
     $pseudo = $request->request->get('pseudo');
     $email = $request->request->get('email');
     $contenu = $request->request->get('contenu');
     $pseudoreponse = $request->request->get('pseudoreponse');
     $pseudocontenu = $request->request->get('pseudocontenu');
     $test = $request->request->get('user');
     $em = $this->getDoctrine()->getManager();
     $rep = $em->getRepository('APPCoreBundle:Commentaire');
     $commentaire = new Commentaire();
     $rep2 = $em->getRepository('APPCoreBundle:Article');
     $article = $rep2->find($id);
     $commentaire->setArticle($article);
     $commentaire->setUser($this->getUser());
     $commentaire->setPseudo($pseudo);
     $commentaire->setPseudoreponse($pseudoreponse);
     $commentaire->setEmail($email);
     $commentaire->setContenu($contenu);
     $commentaire->setPseudocontenu($pseudocontenu);
     if ($test == 1) {
         $repuser = $em->getRepository('APPUserBundle:User');
         $user = $repuser->findOneByUsername($pseudoreponse);
         if (null != $user) {
             if ($this->getUser()->getUsername() == $user->getUsername()) {
                 $commentaire->setVu(1);
             } else {
                 if ($this->getUser()->hasRole('ROLE_ADMIN')) {
                     $user->setNbFront($user->getNbFront() + 1);
                 }
                 $commentaire->setVu(0);
             }
         }
     } else {
         $commentaire->setVu(1);
     }
     if ($this->getUser()->hasRole('ROLE_ADMIN')) {
         $commentaire->setValider(1);
         if ($test == 1) {
             $repuser = $em->getRepository('APPUserBundle:User');
             $user = $repuser->findOneByUsername($pseudoreponse);
             $string = 'Un utilisateur a répondu à votre commentaire. Venez voir: <br /><br /><a href="http://' . $generalite->getDomaine() . '/my">voir</a>';
             $sujet = $generalite->getNom() . ': réponse à votre commentaire';
             $contenu = '<!DOCTYPE html>' . '<html lang="fr">' . '<head>' . ' <meta charset="utf-8" />' . ' <style>' . '     body {' . '         background-color: #E5E5E5;' . '         padding: 50px;' . '         font-family: comic sans ms;' . '     }' . '     header {' . '         width: 500px;' . '         margin: 0 auto;' . '         background-color: #F00;' . '         padding: 4px 5px 8px;' . '         color: #FFF;' . '         background-image: linear-gradient(#FE0000, #BD0100);' . '     }' . '     h1 {' . '         font-size: 1.1em;' . '         line-height: 0.9em;' . '         font-variant: small-caps;' . '         margin: 0.67em 0px;' . '         color: #FFF;' . '         text-align: center;' . '     }' . '     div.element {' . '         width: 500px;' . '         margin: 0 auto;' . '         padding: 5px 5px 30px;' . '         border-left: 1px solid #CDCDCD;' . '         border-right: 1px solid #CDCDCD;' . '         border-bottom: 1px solid #CDCDCD;' . '         background-color: #EAEAEA;' . '         background-image: linear-gradient(#FDFDFD, #EAEAEA);' . '         border-radius: 0px 0px 10px 10px;' . '     }' . '     div.element div {' . '         background-color: #fff;' . '         padding: 25px 10px;' . '         color: #777;' . '     }' . '     p {' . '         letter-spacing: -1px;' . '     }' . '     a {' . '         font-variant: small-caps;' . '         text-decoration: none;' . '         padding: 6px 12px;' . '         border: 1px solid #CDCDCD;' . '         border-radius: 6px;' . '         margin-top: 15px;' . '         background-color: #F00;' . '         background-image: linear-gradient(#FE0000, #BD0100);' . '         color: #FFF;' . '         font-family: comic sans ms;' . '         font-weight: 750;' . '     }' . '       img {' . '           display: none;' . '      }' . ' </style>' . '</head>' . '<body>' . ' <header><h1>réponse à votre commentaire</h1></header>' . ' <div class="element">' . '     <div><p>' . $string . '</p></div>' . ' </div>' . '</body>' . '</html>';
             $message = \Swift_Message::newInstance()->setSubject($sujet)->setFrom('no_reply@' . $generalite->getDomaine())->setTo($user->getEmail())->setContentType('text/html')->setBody($contenu);
             $this->get('mailer')->send($message);
         }
         $article = $commentaire->getArticle();
         $article->setNbCommentaires($article->getNbCommentaires() + 1);
     }
     $em->persist($commentaire);
     $rep3 = $em->getRepository('APPUserBundle:User');
     $users = $rep3->findBy(array(), array(), null, null);
     foreach ($users as $user) {
         if ($user->hasRole('ROLE_ADMIN') && $email != $user->getEmail()) {
             $user->addCommentaire($commentaire);
         }
     }
     $em->flush();
     $statut = 1;
     $reponse = "Merci pour votre réaction, elle sera modérée par un administrateur";
     $response = ['status' => $statut, 'message' => $reponse];
     return new \Symfony\Component\HttpFoundation\JsonResponse($response);
 }
Example #2
0
 /**
  * Add commentaires
  *
  * @param \APP\CoreBundle\Entity\Commentaire $commentaires
  * @return Article
  */
 public function addCommentaire(\APP\CoreBundle\Entity\Commentaire $commentaire)
 {
     $this->commentaires[] = $commentaire;
     $commentaire->setArticle($this);
     return $this;
 }