src/Controller/MessagesController.php line 41
<?phpnamespace App\Controller;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\Routing\Annotation\Route;use Symfony\Component\HttpFoundation\Response;use Doctrine\Persistence\ManagerRegistry;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpFoundation\RedirectResponse;use Symfony\Component\Mailer\MailerInterface;use Symfony\Bridge\Twig\Mime\TemplatedEmail;use Symfony\Component\Mime\Email;use Symfony\Component\Mime\Address;use OlaSoft\Common;use App\Entity\Messages;/*** @Route("/os-admin/messages")*/class MessagesController extends AbstractController{public function __construct(ManagerRegistry $doctrine){$this->doctrine = $doctrine;}private $doctrine;public function getDoctrine(){return $this->doctrine;}/*** @Route("/", name="messages-admin")* @Route("/page/{offset}", name="messages-admin-page")* @Route("/search/{keywords}/page/{offset}/",name="messages-search-admin-page")* @Route("/search/{keywords}/",name="messages-search-admin")*/public function admin(Request $request, $keywords=null,$offset=1){$offset--;$limit = 100;$of=$offset*$limit;$em = $this->getDoctrine()->getManager();$list= $em->getRepository(Messages::class)->getAll($limit,$of,$keywords);$count=$em->getRepository(Messages::class)->getCount();$ajax = $request->isXmlHttpRequest();$response = $this->render('Admin\index.html.twig',['messages' => $list,'ajax'=>$ajax,'count'=>$count,'table_limit'=>$limit,'offset'=>$offset,'noAddBtn' => true,'title'=>'Gestion des messages reçus','subtitle'=>'Liste de tous les messages']);return $ajax ?new Response(\json_encode(['content'=>$response->getContent(),'title'=>'Gestion des messages reçus','subtitle'=>'Liste de tous les messages'])): $response;}/*** @Route("/view/{id}", name="messages-view")*/public function view(Request $request, Messages $msg){$ajax = $request->isXmlHttpRequest();$response = $this->render('Messages\view.html.twig',['msg' => $msg,'ajax'=>$ajax,'title'=>'Gestion des messages reçus','subtitle'=>'Message de '.$msg->getFName().' '.$msg->getLName()]);return $ajax ?new Response(\json_encode(['content'=>$response->getContent(),'title'=>'Gestion des messages reçus','subtitle'=>'Message de '.$msg->getFName().' '.$msg->getLName()])): $response;}/*** @Route("/send/{id}", name="messages-send")*/public function send(Request $request, Messages $msg, MailerInterface $mailer){$author = $msg->getFName().' '.$msg->getLName();$message= "<b>Nom et prénoms : </b>".$author."<br/><b>Adresse électronique : </b>".$msg->getEmail()."<br/><b>Téléphone : </b>".$msg->getPhone()."<br/><b>Object : </b>".$msg->getObject()."<br/><b>Message :</b><p style='border-left: 3px solid #ccc; padding-left: 10px; padding-top: 5px; padding-bottom: 5px;'>".nl2br($msg->getContent())."</p>";$email = (new TemplatedEmail())->from('noreply@'.$_SERVER['HTTP_HOST'])->to(Common::params('contacts')['email'])->replyTo(new Address($msg->getEmail(),$author))->priority(Email::PRIORITY_HIGH)->subject(Common::params('sitename').' - '.$msg->getObject())->html($message);$mailer->send($email);$this->addFlash("notice","Votre message a été envoyé avec succès.");$ajax = $request->isXmlHttpRequest();return $ajax? new Response(\json_encode(['status'=>true, 'notice'=>'Message envoyé avec succès'])): $this->redirectToRoute('messages-admin');}}