src/Controller/OtherController.php line 26

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Bridge\Twig\Mime\TemplatedEmail;
  4. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\HttpFoundation\Response;
  7. use Symfony\Component\Mailer\MailerInterface;
  8. use Symfony\Component\Mime\Address;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. class OtherController extends AbstractController
  11. {
  12.     /**
  13.      * @Route("/qui-sommes-nous", name="app_quisommesnous")
  14.      */
  15.     public function quisommesnous(): Response
  16.     {
  17.         return $this->render('others/qui-sommes-nous.html.twig', []);
  18.     }
  19.     /**
  20.      * @Route("/conditions-utilisation", name="app_conditionsutisation")
  21.      */
  22.     public function conditionsutisation(): Response
  23.     {
  24.         return $this->render('others/conditions-utilisation.html.twig', []);
  25.     }
  26.     /**
  27.      * @Route("/mentions-legales", name="app_mentionslegales")
  28.      */
  29.     public function mentionslegales(): Response
  30.     {
  31.         return $this->render('others/mentions-legales.html.twig', []);
  32.     }
  33.     /**
  34.      * @Route("/confidentialite", name="app_confidentialite")
  35.      */
  36.     public function confidentialite(): Response
  37.     {
  38.         return $this->render('others/confidentialite.html.twig', []);
  39.     }
  40.     /**
  41.      * @Route("/contact", name="app_contact", methods={"GET", "POST"})
  42.      */
  43.     public function contact(Request $requestMailerInterface $mailer): Response
  44.     {
  45.         if ($request->isMethod('POST')) {
  46.             $nom $request->request->get('nom');
  47.             $email $request->request->get('email');
  48.             $sujet $request->request->get('sujet');
  49.             $messageContent $request->request->get('message');
  50.             // 1. Envoi à l'administrateur
  51.             $adminEmail = (new TemplatedEmail())
  52.                 ->from(new Address('moussa@halogari.yt''HaloGari'))
  53.                 ->replyTo($email)
  54.                 ->to('moussa@halogari.yt')
  55.                 ->subject('[Contact] ' $sujet)
  56.                 ->htmlTemplate('emails/contact.html.twig')
  57.                 ->embedFromPath($this->getParameter('kernel.project_dir') . '/public/images/logo.png''logo_halogari')
  58.                 ->context([
  59.                     'nom' => $nom,
  60.                     'expediteur_email' => $email,
  61.                     'message' => $messageContent,
  62.                 ]);
  63.             $mailer->send($adminEmail);
  64.             // 2. Envoi de confirmation à l’utilisateur
  65.             $userConfirmation = (new TemplatedEmail())
  66.                 ->from(new Address('moussa@halogari.yt''HaloGari'))
  67.                 ->to($email)
  68.                 ->subject('Confirmation de votre message')
  69.                 ->htmlTemplate('emails/confirmation_contact.html.twig')
  70.                 ->embedFromPath($this->getParameter('kernel.project_dir') . '/public/images/logo.png''logo_halogari')
  71.                 ->context([
  72.                     'nom' => $nom,
  73.                     'message' => $messageContent,
  74.                 ]);
  75.             $mailer->send($userConfirmation);
  76.             $this->addFlash('success''Votre message a bien été envoyé. Merci !');
  77.             return $this->redirectToRoute('app_contact');
  78.         }
  79.         return $this->render('others/contact.html.twig');
  80.     }
  81.     /**
  82.      * @Route("/faq", name="app_faq", methods={"GET"})
  83.      */
  84.     public function faq(): Response
  85.     {
  86.         return $this->render('others/faq.html.twig');
  87.     }
  88. }