src/Controller/PagesController.php line 78

  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Contact;
  4. use App\Form\ContactType;
  5. use App\Entity\ActivityRequest;
  6. use App\Form\ActivityRequestType;
  7. use Symfony\Component\Mime\Email;
  8. use App\Repository\ContactRepository;
  9. use App\Repository\ActivityRepository;
  10. use Doctrine\ORM\EntityManagerInterface;
  11. use App\Repository\AbonnementsRepository;
  12. use App\Repository\EmbarcationRepository;
  13. use App\Repository\PartenairesRepository;
  14. use App\Controller\AbstractCustomController;
  15. use Symfony\Bridge\Twig\Mime\TemplatedEmail;
  16. use App\Repository\ActivityRequestRepository;
  17. use Symfony\Component\HttpFoundation\Request;
  18. use Symfony\Component\Mailer\MailerInterface;
  19. use Symfony\Component\HttpFoundation\Response;
  20. use Symfony\Component\Routing\Annotation\Route;
  21. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  22. class PagesController extends AbstractController
  23. {
  24.     
  25. #[Route('/contact'name'app_contact')]
  26. public function index(Request $requestContactRepository $contactRepositoryMailerInterface $mailer): Response
  27. {
  28.     $contact = new Contact();
  29.     $form $this->createForm(ContactType::class, $contact);
  30.     $form->handleRequest($request);
  31.     if ($form->isSubmitted() && $form->isValid()) {
  32.         // Sauvegarde du contact dans la base de données
  33.         $contactRepository->save($contacttrue);
  34.         // Envoi de l'e-mail de contact
  35.         $email = (new Email())
  36.             ->from('eric.billaut@villennesboat.fr')
  37.             ->to('dorianclerbout@gmail.com')
  38.             ->subject('Nouveau message de contact')
  39.             ->html($this->renderView('emails/contact.html.twig', ['contact' => $contact]));
  40.         $mailer->send($email);
  41.         return $this->redirectToRoute('app_contact', [], Response::HTTP_SEE_OTHER);
  42.     }
  43.     return $this->render('pages/contact/index.html.twig', [
  44.         'controller_name' => 'PagesController',
  45.         'contact' => $contact,
  46.         'form' => $form->createView(),
  47.     ]);
  48. }
  49.     #[Route('/formules'name'app_formules')]
  50.     public function formules(AbonnementsRepository $abonnementsRepository): Response
  51.     {
  52.         return $this->render('pages/formules/index.html.twig', [
  53.             'controller_name' => 'PagesController',
  54.             'abonnements' => $abonnementsRepository->findBy(['is_active' => true]),
  55.         ]);
  56.     }
  57.     #[Route('/partenaire'name'app_partenaire')]
  58.     public function partenaire(PartenairesRepository $partenairesRepository): Response
  59.     {
  60.         return $this->render('pages/partenaire/index.html.twig', [
  61.             'controller_name' => 'PagesController',
  62.             'partenaires' => $partenairesRepository->findBy(['is_active' => true]),
  63.             
  64.         ]);
  65.     }
  66.     #[Route('/embarcations'name'app_embarcations')]
  67.     public function embarcationsEmbarcationRepository $embarcationRepository,Request $requestContactRepository $contactRepository,): Response
  68.     {
  69.         $contact = new Contact();
  70.         $form $this->createForm(ContactType::class, $contact);
  71.         $form->handleRequest($request);
  72.         if ($form->isSubmitted() && $form->isValid()) {
  73.             $contactRepository->save($contacttrue);
  74.             return $this->redirectToRoute('app_home', [], Response::HTTP_SEE_OTHER);
  75.             $this->addFlash('success''message envoyé');
  76.         }
  77.         return $this->render('pages/embarcations/index.html.twig', [
  78.             'controller_name' => 'PagesController',
  79.             'form' => $form,
  80.             'embarcations' => $embarcationRepository->findBy(['is_active' => true]),
  81.         ]);
  82.     }
  83.     #[Route('/devis'name'app_devis')]
  84.     public function devis(ActivityRequestRepository $activityRequestRepositoryRequest $request): Response
  85.     {
  86.         $activityrequest = new ActivityRequest();
  87.         $form $this->createForm(ActivityRequestType::class, $activityrequest);
  88.         $form->handleRequest($request);
  89.         if ($form->isSubmitted() && $form->isValid()) {
  90.             $activityRequestRepository->save($activityrequesttrue);
  91.             $this->addFlash('success''Demande envoyé');
  92.             return $this->redirectToRoute('app_devis', [], Response::HTTP_SEE_OTHER);
  93.         }
  94.         
  95.         return $this->render('pages/devis/index.html.twig', [
  96.             'controller_name' => 'PagesController',
  97.             'form' => $form,
  98.         ]);
  99.     }
  100.     #[Route('/activités'name'app_activités')]
  101.     public function acivités(Request $requestActivityRepository $activityRepositoryActivityRequestRepository $activityRequestRepository): Response
  102.     {
  103.         $activityrequest = new ActivityRequest();
  104.         $form $this->createForm(ActivityRequestType::class, $activityrequest);
  105.         $form->handleRequest($request);
  106.         if ($form->isSubmitted() && $form->isValid()) {
  107.             $activityRequestRepository->save($activityrequesttrue);
  108.             $this->addFlash('success''Demande envoyé');
  109.             return $this->redirectToRoute('app_activités', [], Response::HTTP_SEE_OTHER);
  110.         }
  111.         return $this->render('pages/activités/index.html.twig', [
  112.             'controller_name' => 'PagesController',
  113.             'activityrequest' => $activityrequest,
  114.             'form' => $form,
  115.             'activities' => $activityRepository->findBy(['active' => true]),
  116.         ]);
  117.     }
  118.     #[Route('/mentions-légales'name'app_mentions')]
  119.     public function mentions(): Response
  120.     {
  121.         return $this->render('pages/mentions/index.html.twig', [
  122.             'controller_name' => 'PagesController',
  123.             
  124.             
  125.         ]);
  126.     }
  127.     #[Route('/cgu'name'app_cgu')]
  128.     public function cgu(): Response
  129.     {
  130.         return $this->render('pages/cgu/index.html.twig', [
  131.             'controller_name' => 'PagesController',
  132.             
  133.             
  134.         ]);
  135.     }
  136.     #[Route('/politique de confidentialité'name'app_conf')]
  137.     public function conf(): Response
  138.     {
  139.         return $this->render('pages/confidentialite/index.html.twig', [
  140.             'controller_name' => 'PagesController',
  141.             
  142.             
  143.         ]);
  144.     }
  145. }