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); }
/** * 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; }