src/Controller/FrontController.php line 72

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Actualite;
  4. use App\Entity\Contact;
  5. use App\Entity\ContactLanding;
  6. use App\Entity\ContactPage;
  7. use App\Entity\ExpertisePage;
  8. use App\Entity\ExpertisePrive;
  9. use App\Entity\ExpertisePublic;
  10. use App\Entity\JobOffer;
  11. use App\Entity\JobOfferCandidacy;
  12. use App\Entity\JobOfferPage;
  13. use App\Entity\LandingPage;
  14. use App\Entity\Presentation;
  15. use App\Entity\ReferencePage;
  16. use App\Entity\ReferencePrive;
  17. use App\Entity\ReferencePublic;
  18. use App\Entity\Solution;
  19. use App\Entity\SolutionPage;
  20. use App\Entity\Team;
  21. use App\Entity\ValeursEngagements;
  22. use App\Form\ContactFormType;
  23. use App\Form\ContactLandingFormType;
  24. use App\Form\JobOfferCandidacyFrontType;
  25. use App\Repository\ActualiteRepository;
  26. use App\Repository\ContactPageRepository;
  27. use App\Repository\ExpertisePageRepository;
  28. use App\Repository\ExpertisePriveRepository;
  29. use App\Repository\ExpertisePublicRepository;
  30. use App\Repository\HomepageRepository;
  31. use App\Repository\JobOfferPageRepository;
  32. use App\Repository\JobOfferRepository;
  33. use App\Repository\LandingPageRepository;
  34. use App\Repository\PresentationRepository;
  35. use App\Repository\ReferencePageRepository;
  36. use App\Repository\ReferencePublicRepository;
  37. use App\Repository\ReferencePriveRepository;
  38. use App\Repository\SolutionPageRepository;
  39. use App\Repository\SolutionRepository;
  40. use App\Repository\TeamMemberRepository;
  41. use App\Repository\TeamRepository;
  42. use App\Repository\ValeursEngagementsRepository;
  43. use Cofondateur\SocleTechniqueBundle\Sitemap\SitemapService;
  44. use Doctrine\ORM\EntityManagerInterface;
  45. use Doctrine\Persistence\ManagerRegistry;
  46. use Pagerfanta\Doctrine\ORM\QueryAdapter;
  47. use Pagerfanta\Pagerfanta;
  48. use Psr\Log\LoggerInterface;
  49. use Symfony\Bridge\Twig\Mime\TemplatedEmail;
  50. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  51. use Symfony\Component\HttpFoundation\Request;
  52. use Symfony\Component\HttpFoundation\Response;
  53. use Symfony\Component\Mailer\MailerInterface;
  54. use Symfony\Component\Mime\Address;
  55. use Symfony\Component\Routing\Annotation\Route;
  56. class FrontController extends AbstractController
  57. {
  58.     /** @var ManagerRegistry */
  59.     private $em;
  60.     public function __construct(ManagerRegistry $em)
  61.     {
  62.         $this->em $em;
  63.     }
  64.     /**
  65.      * @Route("/", name="app_homepage")
  66.      */
  67.     public function index(HomepageRepository $homepageRepositoryExpertisePriveRepository $expertisePriveRepositoryExpertisePublicRepository $expertisePublicRepositorySolutionRepository $solutionRepositoryReferencePriveRepository $referencePriveRepositoryReferencePublicRepository $referencePublicRepositoryActualiteRepository $actualiteRepository): Response
  68.     {
  69.         $page $homepageRepository->findUnique();
  70.         $expertisesPrive $expertisePriveRepository->findAll();
  71.         $expertisesPublic $expertisePublicRepository->findAll();
  72.         $solutions $solutionRepository->findAll();
  73.         $referencesPrive $referencePriveRepository->findAll();
  74.         $referencesPublic $referencePublicRepository->findAll();
  75.         $actualites $actualiteRepository->findBy(['published' => true], ['createdAt' => 'DESC'], 3);
  76.         return $this->render('front/index.html.twig', array(
  77.             'page' => $page,
  78.             'expertisesPrive' => $expertisesPrive,
  79.             'expertisesPublic' => $expertisesPublic,
  80.             'solutions' => $solutions,
  81.             'referencesPrive' => $referencesPrive,
  82.             'referencesPublic' => $referencesPublic,
  83.             'actualites' => $actualites,
  84.         ));
  85.     }
  86.     /**
  87.      * @Route("/presentation", name="app_presentation_index")
  88.      */
  89.     public function presentation(Request $requestExpertisePriveRepository $expertisePriveRepositoryExpertisePublicRepository $expertisePublicRepository): Response
  90.     {
  91.         /** @var PresentationRepository $repo */
  92.         $repo $this->em->getRepository(Presentation::class);
  93.         $page $repo->findUnique();
  94.         $expertisesPrive $expertisePriveRepository->findAll();
  95.         $expertisesPublic $expertisePublicRepository->findAll();
  96.         return $this->render('front/Presentation/index.html.twig', array(
  97.             'page' => $page,
  98.             'expertisesPrive' => $expertisesPrive,
  99.             'expertisesPublic' => $expertisesPublic,
  100.         ));
  101.     }
  102.     /**
  103.      * @Route("/valeursEngagements", name="app_valeurs_engagements_index")
  104.      */
  105.     public function valeursEngagements(Request $request): Response
  106.     {
  107.         /** @var ValeursEngagementsRepository $repo */
  108.         $repo $this->em->getRepository(ValeursEngagements::class);
  109.         $page $repo->findUnique();
  110.         return $this->render('front/ValeursEngagements/index.html.twig', array('page' => $page));
  111.     }
  112.     /**
  113.      * @Route("/equipe", name="app_team_index")
  114.      */
  115.     public function team(Request $requestTeamMemberRepository $teamMemberRepository): Response
  116.     {
  117.         /** @var TeamRepository $repo */
  118.         $repo $this->em->getRepository(Team::class);
  119.         $page $repo->findUnique();
  120.         $members $teamMemberRepository->findBy([], ["position" => "ASC"]);
  121.         return $this->render('front/Team/index.html.twig', array(
  122.             'page' => $page,
  123.             'members' => $members
  124.         ));
  125.     }
  126.     /**
  127.      * @Route("/expertises-decarbonation", name="app_expertise_page_index")
  128.      */
  129.     public function expertisePage(Request $requestExpertisePriveRepository $expertisePriveRepositoryExpertisePublicRepository $expertisePublicRepository): Response
  130.     {
  131.         /** @var ExpertisePageRepository $repo */
  132.         $repo $this->em->getRepository(ExpertisePage::class);
  133.         $page $repo->findUnique();
  134.         $expertisesPrive $expertisePriveRepository->findAll();
  135.         $expertisesPublic $expertisePublicRepository->findAll();
  136.         return $this->render('front/Expertise/list.html.twig', array(
  137.             'page' => $page,
  138.             'expertisesPrive' => $expertisesPrive,
  139.             'expertisesPublic' => $expertisesPublic,
  140.         ));
  141.     }
  142.     /**
  143.      * @Route("/expertises-decarbonation/publique/{slug}", name="app_expertise_public_show")
  144.      */
  145.     public function showExpertisePublic(Request $requestExpertisePublic $expertisePublicExpertisePublicRepository $expertisePublicRepository): Response
  146.     {
  147.         $expertisesPublic $expertisePublicRepository->findAll();
  148.         return $this->render('front/Expertise/show.html.twig', array(
  149.             'page' => $expertisePublic,
  150.             'expertises' => $expertisesPublic,
  151.             'categorie' => "public"
  152.         ));
  153.     }
  154.      /**
  155.      * @Route("/expertises-decarbonation/prive/{slug}", name="app_expertise_prive_show")
  156.      */
  157.     public function showExpertisePrive(Request $requestExpertisePrive $expertisePriveExpertisePriveRepository $expertisePriveRepository): Response
  158.     {
  159.         $expertisesPrive $expertisePriveRepository->findAll();
  160.         return $this->render('front/Expertise/show.html.twig', array(
  161.             'page' => $expertisePrive,
  162.             'expertises' => $expertisesPrive,
  163.             'categorie' => "prive",
  164.         ));
  165.     }
  166.     /**
  167.      * @Route("/solutions-decarbonation", name="app_solution_page_index")
  168.      */
  169.     public function solutionPage(Request $requestSolutionRepository $solutionRepository): Response
  170.     {
  171.         /** @var SolutionPageRepository $repo */
  172.         $repo $this->em->getRepository(SolutionPage::class);
  173.         $page $repo->findUnique();
  174.         $solutions $solutionRepository->findAll();
  175.         return $this->render('front/Solution/list.html.twig', array(
  176.             'page' => $page,
  177.             'solutions' => $solutions
  178.         ));
  179.     }
  180.     /**
  181.      * @Route("/solutions-decarbonation/detail/{slug}", name="app_solution_show")
  182.      */
  183.     public function showSolution(Request $requestSolution $solutionReferencePriveRepository $referencePriveRepositoryReferencePublicRepository $referencePublicRepositorySolutionRepository $solutionRepository): Response
  184.     {
  185.         $referencesPrive $referencePriveRepository->findAll();
  186.         $referencesPublic $referencePublicRepository->findAll();
  187.         $solutions $solutionRepository->findAll();
  188.         return $this->render('front/Solution/show.html.twig', array(
  189.             'page' => $solution,
  190.             'referencesPrive' => $referencesPrive,
  191.             'referencesPublic' => $referencesPublic,
  192.             'solutions' => $solutions,
  193.         ));
  194.     }
  195.     /**
  196.      * @Route("/actualites/detail/{slug}", name="app_actualite_show")
  197.      */
  198.     public function showActualite(Request $requestActualite $actualiteActualiteRepository $actualiteRepository): Response
  199.     {
  200.         $actualites $actualiteRepository->createQueryBuilder('a')
  201.         ->andWhere('a != :actualite')
  202.         ->andWhere('a.published = true')
  203.         ->setParameter('actualite'$actualite)
  204.         ->orderBy('a.createdAt''DESC')
  205.         ->setMaxResults(3)
  206.         ->getQuery()
  207.         ->getResult();
  208.         return $this->render('front/Actualite/show.html.twig', array(
  209.             'page' => $actualite,
  210.             'actualites' => $actualites
  211.         ));
  212.     }
  213.     /**
  214.      * @Route("/actualites/{page}", name="app_actualite_list", requirements={"page"="\d+"}, defaults={"page": 1})
  215.      */
  216.     public function listActualites(Request $request$page): Response
  217.     {
  218.         /** @var ActualiteRepository $repo */
  219.         $repo $this->em->getRepository(Actualite::class);
  220.         $actualites = new Pagerfanta(new QueryAdapter($repo->createQueryBuilder('e')->andWhere("e.published = true")->orderBy('e.createdAt''DESC')));
  221.         $actualites->setMaxPerPage(6);
  222.         $actualites->setCurrentPage($page);
  223.         return $this->render('front/Actualite/list.html.twig', [
  224.             'actualites' => $actualites,
  225.             'noindex' => $page 1,
  226.         ]);
  227.     }
  228.     /**
  229.      * @Route("/offres-emploi/{slug}", name="app_job_offer_show")
  230.      */
  231.     public function showJobOffer(Request $requestJobOffer $jobOfferJobOfferRepository $jobOfferRepositoryEntityManagerInterface $emMailerInterface $mailerLoggerInterface $logger): Response
  232.     {
  233.         $jobOffers $jobOfferRepository->findBy(['published' => true], ['idPost' => 'DESC'], 2);
  234.         $candidacy = new JobOfferCandidacy();
  235.         $candidacy->setJobOffer($jobOffer);
  236.         $form $this->createForm(JobOfferCandidacyFrontType::class, $candidacy);
  237.         $form->handleRequest($request);
  238.         $sendOffer false;
  239.         if ($form->isSubmitted() && $form->isValid()) {
  240.             $candidacy->setCreatedAt(new \DateTime());
  241.             $em->persist($candidacy);
  242.             $em->flush();
  243.             $recipients $_ENV['MAIL_RECIPIENT_CANDIDACY'];
  244.             $recipients explode(','$recipients);
  245.             $email = (new TemplatedEmail())
  246.                 ->from(new Address($_ENV['MAIL_SENDER'], 'noocarb'))
  247.                 ->to(...$recipients)
  248.                 ->subject("Vous avez reçu une nouvelle candidature")
  249.                 // path of the Twig template to render
  250.                 ->htmlTemplate('mail/candidacy.html.twig')
  251.                 // pass variables (name => value) to the template
  252.                 ->context(["candidacy" => $candidacy'mail_hostname' => $_ENV['MAIL_HOSTNAME']]);
  253.             try {
  254.                 $mailer->send($email);
  255.                 $this->addFlash('successOffer''Merci pour votre candidature, notre équipe prend connaissance de votre dossier et reviendra vers vous dans les plus brefs délais.');
  256.             } catch (\Exception $e) {
  257.                 $logger->error($e->getMessage());
  258.                 $this->addFlash('errorsOffer''Une erreur est survenue, merci de rééssayer.');
  259.             }
  260.             $sendOffer true;
  261.         }
  262.         return $this->render('front/JobOffer/show.html.twig', array(
  263.             'page' => $jobOffer,
  264.             'jobOffers' => $jobOffers,
  265.             'form' => $form->createView(),
  266.             'sendOffer' => $sendOffer
  267.         ));
  268.     }
  269.     /**
  270.      * @Route("/offres-emploi", name="app_job_offer_list")
  271.      */
  272.     public function jobOfferPage(Request $requestJobOfferRepository $jobOfferRepository): Response
  273.     {
  274.         /** @var JobOfferPageRepository $repo */
  275.         $repo $this->em->getRepository(JobOfferPage::class);
  276.         $page $repo->findUnique();
  277.         $jobOffers $jobOfferRepository->findBy(['published' => true], ['id' => 'DESC']);
  278.         return $this->render('front/JobOffer/list.html.twig', array(
  279.             'page' => $page,
  280.             'jobOffers' => $jobOffers
  281.         ));
  282.     }
  283.     /**
  284.      * @Route("/references/publique/{page}", name="app_reference_public_index", requirements={"page"="\d+"}, defaults={"page": 1})
  285.      */
  286.     public function referencePublicPage(Request $request$pageReferencePublicRepository $referencePublicRepository): Response
  287.     {
  288.         /** @var ReferencePageRepository $repo */
  289.         $repo $this->em->getRepository(ReferencePage::class);
  290.         $pageRepo $repo->findUnique();
  291.         $referencesPublic = new Pagerfanta(new QueryAdapter($referencePublicRepository->createQueryBuilder('e')->orderBy('e.position''ASC')));
  292.         $referencesPublic->setMaxPerPage(6);
  293.         $referencesPublic->setCurrentPage($page);
  294.         return $this->render('front/Reference/list.html.twig', array(
  295.             'page' => $pageRepo,
  296.             'category' => "public",
  297.             'references' => $referencesPublic,
  298.         ));
  299.     }
  300.     /**
  301.      * @Route("/references/prive/{page}", name="app_reference_prive_index", requirements={"page"="\d+"}, defaults={"page": 1})
  302.      */
  303.     public function referencePrivePage(Request $request$pageReferencePriveRepository $referencePriveRepository): Response
  304.     {
  305.         /** @var ReferencePageRepository $repo */
  306.         $repo $this->em->getRepository(ReferencePage::class);
  307.         $pageRepo $repo->findUnique();
  308.         $referencesPrive = new Pagerfanta(new QueryAdapter($referencePriveRepository->createQueryBuilder('e')->orderBy('e.position''ASC')));
  309.         $referencesPrive->setMaxPerPage(6);
  310.         $referencesPrive->setCurrentPage($page);
  311.         return $this->render('front/Reference/list.html.twig', array(
  312.             'page' => $pageRepo,
  313.             'category' => "prive",
  314.             'references' => $referencesPrive,
  315.         ));
  316.     }
  317.     /**
  318.      * @Route("/references/publique/{slug}", name="app_reference_public_show")
  319.      */
  320.     public function showReferencePublic(Request $requestReferencePublic $referencePublicReferencePublicRepository $referencePublicRepository): Response
  321.     {
  322.         $referencesPublic $referencePublicRepository->findBy([], ['id' => 'DESC'], 3);
  323.         return $this->render('front/Reference/show.html.twig', array(
  324.             'page' => $referencePublic,
  325.             'references' => $referencesPublic,
  326.             'categorie' => 'public',
  327.         ));
  328.     }
  329.     /**
  330.      * @Route("/references/prive/{slug}", name="app_reference_prive_show")
  331.      */
  332.     public function showReferencePrive(Request $requestReferencePrive $referencePriveReferencePriveRepository $referencePriveRepository): Response
  333.     {
  334.         $referencesPrive $referencePriveRepository->findBy([], ['id' => 'DESC'], 3);
  335.         return $this->render('front/Reference/show.html.twig', array(
  336.             'page' => $referencePrive,
  337.             'references' => $referencesPrive,
  338.             'categorie' => 'prive',
  339.         ));
  340.     }
  341.     /**
  342.      * @Route("/contact", name="app_contact_page_index")
  343.      */
  344.     public function contactPage(Request $requestEntityManagerInterface $emMailerInterface $mailerLoggerInterface $logger): Response
  345.     {
  346.         /** @var ContactPageRepository $repo */
  347.         $repo $this->em->getRepository(ContactPage::class);
  348.         $page $repo->findUnique();
  349.         $contact = new Contact;
  350.         $form $this->createForm(ContactFormType::class, $contact);
  351.         // dd($form->handleRequest($request));
  352.         $form->handleRequest($request);
  353.         if ($form->isSubmitted() && $form->isValid()) {
  354.             /** @var Contact $contact */
  355.             $contact->setDate(new \DateTime());
  356.             $em->persist($contact);
  357.             $em->flush();
  358.             $recipients $_ENV['MAIL_RECIPIENT'];
  359.             $recipients explode(','$recipients);
  360.             $email = (new TemplatedEmail())
  361.                 ->from(new Address($_ENV['MAIL_SENDER'], 'noocarb'))
  362.                 ->to(...$recipients)
  363.                 ->subject("Vous avez reçu une nouvelle demande de contact")
  364.                 // path of the Twig template to render
  365.                 ->htmlTemplate('mail/contact.html.twig')
  366.                 // pass variables (name => value) to the template
  367.                 ->context(["contact" => $contact'mail_hostname' => $_ENV['MAIL_HOSTNAME']]);
  368.             try {
  369.                 $mailer->send($email);
  370.                 $this->addFlash('successContact''Merci nous avons reçu votre demande. Nous vous répondrons dans les plus brefs délais.');
  371.             } catch (\Exception $e) {
  372.                 $logger->error($e->getMessage());
  373.                 $this->addFlash('errorsContact''Une erreur est survenue, merci de rééssayer.');
  374.             }
  375.         }
  376.         return $this->render('front/ContactPage/index.html.twig', array(
  377.             'page' => $page,
  378.             'form' => $form->createView()
  379.         ));
  380.     }
  381.     /**
  382.      * @Route("/newsletter", name="app_newsletter")
  383.      */
  384.     public function addToNewsletter(Request $request)
  385.     {
  386.         $email json_decode($request->request->get('email'), true);
  387.         $this->addFlash('sendNewsletter''send.');
  388.         if (empty($email)) {
  389.             return $this->redirectToRoute('app_homepage');
  390.         }
  391.         $mailchimp = new \MailchimpMarketing\ApiClient();
  392.         $mailchimp->setConfig([
  393.             'apiKey' => '35dba78e6d7db3328149aacfa1dfa53e-us10',
  394.             'server' => 'us10'
  395.         ]);
  396.         $listMembers $mailchimp->lists->getListMembersInfo("feda93d28a")->members;
  397.         foreach ($listMembers as $member) {
  398.             if ($member->email_address == $email) {
  399.                 $this->addFlash('successNewsletter'"Votre email est déjà inscrit.");
  400.                 return $this->redirectToRoute('app_homepage');
  401.             }
  402.         }
  403.         try {
  404.             $mailchimp->lists->addListMember("feda93d28a", [
  405.                 "email_address" => $email,
  406.                 "status" => "subscribed",
  407.             ]);
  408.             $this->addFlash('successNewsletter''L\'email ' $email " a bien été ajouté à notre newsletter.");
  409.             return $this->redirectToRoute('app_homepage');
  410.         } catch (\Exception $e) {
  411.             $this->addFlash('errorsNewsletter'"Une erreur s'est produite, merci de rééssayer.");
  412.             return $this->redirectToRoute('app_homepage');
  413.         }
  414.         return $this->redirectToRoute('app_homepage');
  415.     }
  416.     /**
  417.      * @Route("/sitemap.{_format}", name="app_sitemap_front", format="html")
  418.      */
  419.     public function sitemap(Request $requestSitemapService $sitemapService): Response
  420.     {
  421.         $format $request->getRequestFormat();
  422.         $links $sitemapService->generateSitemap();
  423.         $template 'front/';
  424.         if ($format === 'xml') {
  425.             $template .= 'sitemap/index.xml.twig';
  426.         } else {
  427.             $template .= 'sitemap/index.html.twig';
  428.         }
  429.         return $this->render($template, [
  430.             'sitemapLinkGroups' => $links
  431.         ]);
  432.     }
  433.     /**
  434.      * @Route("/mentions-legales", name="app_legal_terms")
  435.      */
  436.     public function legalTerms(): Response
  437.     {
  438.         return $this->render('front/legalTerms.html.twig');
  439.     }
  440.     /**
  441.      * @Route("/confidentialite", name="app_confidentiality")
  442.      */
  443.     public function confidentiality(): Response
  444.     {
  445.         return $this->render('front/confidentiality.html.twig',array(
  446.         'siteName' => $_ENV['SITENAME'],
  447.         'hostname' => $_ENV['HOSTNAME']
  448.     ));
  449.     }
  450.     /**
  451.      * @Route("/ingenierie-decarbonation", name="app_landing_ingenierie_decarbonation")
  452.      */
  453.     public function ingenierieDecarbonation(Request $requestEntityManagerInterface $emMailerInterface $mailerLoggerInterface $logger): Response
  454.     {
  455.         $contact = new ContactLanding();
  456.         $form $this->createForm(ContactLandingFormType::class, $contact);
  457.         $form->handleRequest($request);
  458.         if ($form->isSubmitted() && $form->isValid()) {
  459.             $contact->setDate(new \DateTime());
  460.             $em->persist($contact);
  461.             $em->flush();
  462.             $recipients $_ENV['MAIL_RECIPIENT'];
  463.             $recipients explode(','$recipients);
  464.             $email = (new TemplatedEmail())
  465.                 ->from(new Address($_ENV['MAIL_SENDER'], 'noocarb'))
  466.                 ->to(...$recipients)
  467.                 ->subject("Nouvelle demande — Landing Ingénierie de décarbonation")
  468.                 ->htmlTemplate('mail/contact_landing.html.twig')
  469.                 ->context(['contact' => $contact'mail_hostname' => $_ENV['MAIL_HOSTNAME']]);
  470.             try {
  471.                 $mailer->send($email);
  472.                 $this->addFlash('successContactLanding''Merci, nous avons bien reçu votre demande. Nous vous répondrons dans les plus brefs délais.');
  473.             } catch (\Exception $e) {
  474.                 $logger->error($e->getMessage());
  475.                 $this->addFlash('errorsContactLanding''Une erreur est survenue, merci de réessayer.');
  476.             }
  477.         }
  478.         return $this->render('front/LandingPage/ingenierie_decarbonation.html.twig', [
  479.             'contactLandingForm' => $form->createView(),
  480.         ]);
  481.     }
  482.     /**
  483.      * @Route("/page/{slug}", name="app_landing_page_show")
  484.      */
  485.     public function showLandingPage(Request $request, ?LandingPage $landingPage=nullEntityManagerInterface $emMailerInterface $mailerLoggerInterface $logger): Response
  486.     {
  487.         $isPreview $request->query->getBoolean('preview') && $this->isGranted('ROLE_ADMIN');
  488.         if ($landingPage === null || (!$landingPage->isPublished() && !$isPreview)) {
  489.             throw $this->createNotFoundException();
  490.         }
  491.         $contact = new ContactLanding();
  492.         $form $this->createForm(ContactLandingFormType::class, $contact);
  493.         $form->handleRequest($request);
  494.         if ($form->isSubmitted() && $form->isValid()) {
  495.             $contact->setDate(new \DateTime());
  496.             $em->persist($contact);
  497.             $em->flush();
  498.             $recipients $_ENV['MAIL_RECIPIENT'];
  499.             $recipients explode(','$recipients);
  500.             $email = (new TemplatedEmail())
  501.                 ->from(new Address($_ENV['MAIL_SENDER'], 'noocarb'))
  502.                 ->to(...$recipients)
  503.                 ->subject("Nouvelle demande — " $landingPage->getTitle())
  504.                 ->htmlTemplate('mail/contact_landing.html.twig')
  505.                 ->context(['contact' => $contact'mail_hostname' => $_ENV['MAIL_HOSTNAME']]);
  506.             try {
  507.                 $mailer->send($email);
  508.                 $this->addFlash('successContactLanding''Merci, nous avons bien reçu votre demande. Nous vous répondrons dans les plus brefs délais.');
  509.             } catch (\Exception $e) {
  510.                 $logger->error($e->getMessage());
  511.                 $this->addFlash('errorsContactLanding''Une erreur est survenue, merci de réessayer.');
  512.             }
  513.         }
  514.         return $this->render('front/LandingPage/show.html.twig', [
  515.             'page' => $landingPage,
  516.             'contactLandingForm' => $form->createView(),
  517.         ]);
  518.     }
  519. //
  520. //    /**
  521. //     * @Route("/landingPages/{page}", name="app_landing_page_list", requirements={"page"="\d+"}, defaults={"page": 1})
  522. //     */
  523. //    public function listLandingPages(Request $request, $page): Response
  524. //    {
  525. //        /** @var LandingPageRepository $repo */
  526. //        $repo = $this->em->getRepository(LandingPage::class);
  527. //        $landingPages = new Pagerfanta(new QueryAdapter($repo->createQueryBuilder('e')));
  528. //        $landingPages->setMaxPerPage(6);
  529. //        $landingPages->setCurrentPage($page);
  530. //        return $this->render('front/LandingPage/list.html.twig', array('landingPages' => $landingPages));
  531. //    }
  532. }