src/Controller/DefaultController.php line 204

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Actus;
  4. use App\Entity\Evopub;
  5. use App\Entity\Evosimul;
  6. use App\Entity\Evositepub;
  7. use App\Entity\GoogleMap;
  8. use App\Entity\Statistiquesevo2020;
  9. use App\Entity\Statistiquesevocookies;
  10. use App\Entity\Statistiquesevorobot;
  11. use App\Entity\Statistiquesevosession;
  12. use App\Form\ContactFormType;
  13. use App\Form\ContactPromoFormType;
  14. use App\Form\DiagnostiqueFormType;
  15. use App\Form\TestGoogleMap;
  16. use App\Repository\SimulSitePanneauxRepository;
  17. use App\Service\Session;
  18. use Doctrine\Persistence\ManagerRegistry;
  19. use Karser\Recaptcha3Bundle\Form\Recaptcha3Type;
  20. use Karser\Recaptcha3Bundle\Validator\Constraints\Recaptcha3;
  21. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  22. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  23. use Symfony\Component\HttpFoundation\Request;
  24. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  25. use Symfony\Component\HttpFoundation\Response;
  26. use Symfony\Component\Mailer\Exception\TransportExceptionInterface;
  27. use Symfony\Component\Mailer\MailerInterface;
  28. use Symfony\Component\Mime\Email;
  29. use Symfony\Component\Routing\Annotation\Route;
  30. use Symfony\Component\HttpFoundation\RedirectResponse;
  31. use Symfony\Component\HttpFoundation\BinaryFileResponse;
  32. class DefaultController extends AbstractController
  33. {
  34.     /**
  35.      * @Route("/", name="/")
  36.      * @param Session $session
  37.      * @param Request $request
  38.      * @return Response
  39.      */
  40.     public function index(Session $sessionRequest $request)
  41.     {
  42.         //$session = $session->Session($request);
  43.         //  $actusDates = $this->getDoctrine()->getRepository(Actus::class)->findActusOrderedByDates();
  44.         return $this->render('home.html.twig'/*, ["actusDates" => $actusDates]*/);
  45.     }
  46.     /**
  47.      * @Route("/m", name="/m")
  48.      * @param Session $session
  49.      * @param Request $request
  50.      * @return Response
  51.      */
  52.     public function indexm(Session $sessionRequest $request)
  53.     {
  54.         $session $session->Session($request);
  55.         $actusDates $this->getDoctrine()->getRepository(Actus::class)->findActusOrderedByDates();
  56.         return $this->render('home.html.twig', ["actusDates" => $actusDates]);
  57.     }
  58.     /**
  59.      * @Route("/nos_equipes", name="nos_equipes")
  60.      * @param Session $session
  61.      * @param Request $request
  62.      * @return Response
  63.      */
  64.     public function equipes(Session $sessionRequest $request)
  65.     {
  66.         $session $session->Session($request);
  67.         return $this->render('nos_equipes.html.twig');
  68.     }
  69.     /**
  70.      * @Route("/financements", name="financements")
  71.      * @param Session $session
  72.      * @param Request $request
  73.      * @return Response
  74.      */
  75.     public function financements(Session $sessionRequest $request)
  76.     {
  77.         $session $session->Session($request);
  78.         return $this->render('financement.html.twig');
  79.     }
  80.     /**
  81.      * @Route("/chauffage", name="chauffage")
  82.      * @param Session $session
  83.      * @param Request $request
  84.      * @return Response
  85.      */
  86.     public function chauffage(Session $sessionRequest $request)
  87.     {
  88.         $session $session->Session($request);
  89.         return $this->render('chauffage.html.twig');
  90.     }
  91.     /**
  92.      * @Route("/pac-climatisation", name="pac-clim")
  93.      * @return Response
  94.      */
  95.     public function pac_clim()
  96.     {
  97.         return $this->render('pac-clim.html.twig');
  98.     }
  99.     /**
  100.      * @Route("/chauffage/pac-air-air", name="chauffage_pac_aa")
  101.      * @param Session $session
  102.      * @param Request $request
  103.      * @return Response
  104.      */
  105.     public function chauffage_pac_aa(Session $sessionRequest $request)
  106.     {
  107.         // $session = $session->Session($request);
  108.         return $this->render('pac-air-air.html.twig');
  109.     }
  110.     /**
  111.      * @Route("/chauffage/pac-air-eau", name="chauffage_pac_ae")
  112.      * @param Session $session
  113.      * @param Request $request
  114.      * @return Response
  115.      */
  116.     public function chauffage_pac_ae(Session $sessionRequest $request)
  117.     {
  118.         $session $session->Session($request);
  119.         return $this->render('pac-air-eau.html.twig');
  120.     }
  121.     /**
  122.      * @Route("/isol_ecolo", name="isol_ecolo")
  123.      * @param Session $session
  124.      * @param Request $request
  125.      * @return Response
  126.      */
  127.     public function isol_ecolo(Session $sessionRequest $request)
  128.     {
  129.         $session $session->Session($request);
  130.         return $this->render('isol-ecolo.html.twig');
  131.     }
  132.     /**
  133.      * @Route("/garanties", name="garanties")
  134.      * @param Session $session
  135.      * @param Request $request
  136.      * @return Response
  137.      */
  138.     public function garanties(Session $sessionRequest $request)
  139.     {
  140.         $session $session->Session($request);
  141.         return $this->render('garanties.html.twig');
  142.     }
  143.     /**
  144.      * @Route("/realisations", name="realisations")
  145.      * @param Session $session
  146.      * @param Request $request
  147.      * @return Response
  148.      */
  149.     public function realisations(Session $sessionRequest $request)
  150.     {
  151.         $session $session->Session($request);
  152.         return $this->render('realisations.html.twig');
  153.     }
  154.     /**
  155.      * @Route("/realisations-panneaux", name="realisations_panneaux")
  156.      * @param Session $session
  157.      * @param Request $request
  158.      * @return Response
  159.      */
  160.     public function realisations_panneaux(Session $sessionRequest $request)
  161.     {
  162.         return $this->render('realisations-panneaux.html.twig');
  163.     }
  164.     /**
  165.      * @Route("/services", name="services")
  166.      * @param Session $session
  167.      * @param Request $request
  168.      * @return Response
  169.      */
  170.     public function services(Session $sessionRequest $request)
  171.     {
  172.         $session $session->Session($request);
  173.         return $this->render('services.html.twig');
  174.     }
  175.     /**
  176.      * @Route("/mentions-legales", name="mentions")
  177.      * @param Session $session
  178.      * @param Request $request
  179.      * @return Response
  180.      */
  181.     public function mentions(Session $sessionRequest $request)
  182.     {
  183.         $session $session->Session($request);
  184.         return $this->render('mentions.html.twig');
  185.     }
  186.     /**
  187.      * @Route("/zones-travaux-isolation", name="zones-travaux")
  188.      * @param Session $session
  189.      * @param Request $request
  190.      * @return Response
  191.      */
  192.     public function zones(Session $sessionRequest $request)
  193.     {
  194.         $session $session->Session($request);
  195.         return $this->render('zones-travaux.html.twig');
  196.     }
  197.     /**
  198.      * @Route("/contact", name="contact")
  199.      * @param Session $session
  200.      * @param Request $request
  201.      * @param ManagerRegistry $doctrine
  202.      * @return Response
  203.      */
  204.     public function contact(Session $sessionRequest $requestManagerRegistry $doctrine)
  205.     {
  206.         $session $session->Session($request);
  207.         $contact = new Evosimul();
  208.         $form $this->createForm(ContactFormType::class, $contact);
  209.         $form->handleRequest($request);
  210.         if ($form->isSubmitted() && $form->isValid()) {
  211.             $this->addFlash(
  212.                 'success',
  213.                 'Nous avons bien reçu votre demande ! Nous allons vous
  214.                 contacter d\'ici peu, merci de votre confiance.'
  215.             );
  216.             $contact $form->getData();
  217.             $nom $contact->getNom();
  218.             $prenom $contact->getPrenom();
  219.             $ville $contact->getVille();
  220.             $projet $contact->getProjet();
  221.             $comments $contact->getComments();
  222.             $mail $contact->getEmail();
  223.             $phone $contact->getTel();
  224.             $entityManager $doctrine->getManager();
  225.             $entityManager->persist($contact);
  226.             $entityManager->flush();
  227.             // Put here your valid email address
  228.             $to "contact@evo-logis.fr";
  229.             // Subject of the message
  230.             $subject "Simulation internet";
  231.             // Body of the message, text encoded using iso-8859-1
  232.             $message "$nom , $prenom , $ville , $mail , $phone , $projet , $comments";
  233.             // Headers of the message
  234.             $headers ""// we clear the variable
  235.             $headers "From: Webmaster <webmaster@domain.ext>\n"// Adding the From field
  236.             // $headers = $headers."MIME-Version: 1.0\n"; // Adding the MIME version
  237.             $headers $headers "Content-type: text/plain; charset=iso-8859-1\n"// Add the type of encoding
  238.             // Call the mail function
  239.             mail($to$subject$message$headers);
  240.             return $this->redirectToRoute('contact');
  241.         }
  242.         return $this->renderForm('contact.html.twig', ['form' => $form]);
  243.     }
  244.     /**
  245.      * @Route("/simulation", name="simulation")
  246.      * @param Session $session
  247.      * @param Request $request
  248.      * @return Response
  249.      */
  250.     public function simulation(Session $sessionRequest $request)
  251.     {
  252.         $session $session->Session($request);
  253.         return $this->render('simulation.html.twig');
  254.     }
  255.     /**
  256.      * @Route("/diagnostique_gratuit", name="diagnostique_gratuit")
  257.      * @param Session $session
  258.      * @param Request $request
  259.      * @param ManagerRegistry $doctrine
  260.      * @return Response
  261.      */
  262.     public function diagnostique_gratuit(Session $sessionRequest $requestManagerRegistry $doctrine)
  263.     {
  264.         $session $session->Session($request);
  265.         $diagnostique = new Evosimul();
  266.         $form $this->createForm(DiagnostiqueFormType::class, $diagnostique);
  267.         $form->handleRequest($request);
  268.         if ($form->isSubmitted() && $form->isValid()) {
  269.             $this->addFlash(
  270.                 'success',
  271.                 'Nous avons bien reçu votre demande ! Nous allons vous
  272.                 contacter d\'ici peu, merci de votre confiance.'
  273.             );
  274.             $diagnostique $form->getData();
  275.             $nom $diagnostique->getNom();
  276.             $prenom $diagnostique->getPrenom();
  277.             $ville $diagnostique->getVille();
  278.             $projet $diagnostique->getProjet();
  279.             $comments $diagnostique->getComments();
  280.             $mail $diagnostique->getEmail();
  281.             $phone $diagnostique->getTel();
  282.             $entityManager $doctrine->getManager();
  283.             $entityManager->persist($diagnostique);
  284.             $entityManager->flush();
  285.             // Put here your valid email address
  286.             $to "contact@evo-logis.fr";
  287.             // Subject of the message
  288.             $subject "Simulation internet";
  289.             // Body of the message, text encoded using iso-8859-1
  290.             $message "$nom , $prenom , $ville , $mail , $phone , $projet , $comments";
  291.             // Headers of the message
  292.             $headers ""// we clear the variable
  293.             $headers "From: Webmaster <webmaster@domain.ext>\n"// Adding the From field
  294.             // $headers = $headers."MIME-Version: 1.0\n"; // Adding the MIME version
  295.             $headers $headers "Content-type: text/plain; charset=iso-8859-1\n"// Add the type of encoding
  296.             // Call the mail function
  297.             mail($to$subject$message$headers);
  298.             return $this->redirectToRoute('diagnostique_gratuit');
  299.         }
  300.         return $this->renderForm('diagnostique_gratuit.html.twig', ['form' => $form]);
  301.     }
  302.     /**
  303.      * @Route("/diagnostique_gratuit/{random_simul_id}", name="diagnostique_gratuit2")
  304.      * @param Session $session
  305.      * @param Request $request
  306.      * @return Response
  307.      */
  308.     public function diagnostique_gratuit_panneaux(Session $sessionRequest $requestSimulSitePanneauxRepository $simulSitePanneauxRepository$random_simul_id)
  309.     {
  310.         $session $session->Session($request);
  311.         $client $simulSitePanneauxRepository->findOneBy(['random_simul_id' => $random_simul_id]);
  312.         return $this->render('diagnostique_gratuit_panneaux.html.twig', ['client' => $client'random_simul_id' => $random_simul_id]);
  313.     }
  314.     /**
  315.      * @Route("/isolations", name="isolations")
  316.      * @param Session $session
  317.      * @param Request $request
  318.      * @return Response
  319.      */
  320.     public function isolations(Session $sessionRequest $request)
  321.     {
  322.         $session $session->Session($request);
  323.         return $this->render('isolations/isolations.html.twig');
  324.     }
  325.     /**
  326.      * @Route("/isolation-combles", name="isolation-combles")
  327.      * @param Session $session
  328.      * @param Request $request
  329.      * @return Response
  330.      */
  331.     public function isolation_combles(Session $sessionRequest $request)
  332.     {
  333.         $session $session->Session($request);
  334.         return $this->render('isolations/isolation-combles.html.twig');
  335.     }
  336.     /**
  337.      * @Route("/isolation-toitures", name="isolation-toitures")
  338.      * @param Session $session
  339.      * @param Request $request
  340.      * @return Response
  341.      */
  342.     public function isolation_toitures(Session $sessionRequest $request)
  343.     {
  344.         $session $session->Session($request);
  345.         return $this->render('isolations/isolation-toitures.html.twig');
  346.     }
  347.     /**
  348.      * @Route("/isolation-sous-sols", name="isolation-sous-sols")
  349.      * @param Session $session
  350.      * @param Request $request
  351.      * @return Response
  352.      */
  353.     public function isolation_sous_sols(Session $sessionRequest $request)
  354.     {
  355.         $session $session->Session($request);
  356.         return $this->render('isolations/isolation-sous-sols.html.twig');
  357.     }
  358.     /**
  359.      * @Route("/isolation-murs", name="isolation-murs")
  360.      * @param Session $session
  361.      * @param Request $request
  362.      * @return Response
  363.      */
  364.     public function isolation_murs(Session $sessionRequest $request)
  365.     {
  366.         $session $session->Session($request);
  367.         return $this->render('isolations/isolation-murs.html.twig');
  368.     }
  369.     /**
  370.      * @Route("/panneau-solaire", name="panneau-solaire")
  371.      * @param Session $session
  372.      * @param Request $request
  373.      * @return Response
  374.      */
  375.     public function panneau_solaire(Session $sessionRequest $request)
  376.     {
  377.         $session $session->Session($request);
  378.         return $this->render('isolations/panneau-solaire.html.twig');
  379.     }
  380.     /**
  381.      * @Route("/guide-panneau-solaire", name="guide-panneau-solaire")
  382.      * @param Session $session
  383.      * @param Request $request
  384.      * @return Response
  385.      */
  386.     public function guide_panneau_solaire(Session $sessionRequest $request)
  387.     {
  388.         $session $session->Session($request);
  389.         return $this->render('isolations/guide-panneau-solaire.html.twig');
  390.     }
  391.     /**
  392.      * @Route("/promo-panneau-solaire", name="promo-panneau-solaire")
  393.      * @param Session $session
  394.      * @param Request $request
  395.      * @return Response
  396.      */
  397.     public function promo_panneau_solaire(Session $sessionRequest $request)
  398.     {
  399.         $session $session->Session($request);
  400.         return $this->render('isolations/conditions-promo-solaire-4999.html.twig');
  401.     }
  402.     /**
  403.      * @Route("/borne-recharge", name="borne-recharge")
  404.      * @param Session $session
  405.      * @param Request $request
  406.      * @return Response
  407.      */
  408.     public function borne_recharge(Session $sessionRequest $request)
  409.     {
  410.         $session $session->Session($request);
  411.         return $this->render('isolations/borne-recharge.html.twig');
  412.     }
  413.     /**
  414.      * @Route("/le-saviez-vous", name="lsv")
  415.      * @param Session $session
  416.      * @param Request $request
  417.      * @return Response
  418.      */
  419.     public function lsv(Session $sessionRequest $request)
  420.     {
  421.         $session $session->Session($request);
  422.         return $this->render('le-saviez-vous.html.twig');
  423.     }
  424.     /**
  425.      * @Route("/maps", name="maps")
  426.      * @param Session $session
  427.      * @param Request $request
  428.      * @return Response
  429.      */
  430.     public function maps(Session $sessionRequest $request)
  431.     {
  432.         $task = new GoogleMap();
  433.         $form $this->createForm(TestGoogleMap::class, $task);
  434.         $form->handleRequest($request);
  435.         if ($form->isSubmitted() && $form->isValid()) {
  436.             // $form->getData() holds the submitted values
  437.             // but, the original `$task` variable has also been updated
  438.             $values $form->getData();
  439.             // ... perform some action, such as saving the task to the database
  440.             // for example, if Task is a Doctrine entity, save it!
  441.             // $entityManager = $this->getDoctrine()->getManager();
  442.             // $entityManager->persist($task);
  443.             // $entityManager->flush();
  444.             return $this->render('maps.html.twig', [
  445.                 'form' => $form->createView(), 'values' => $values,
  446.             ]);
  447.         }
  448.         return $this->render('maps.html.twig', [
  449.             'form' => $form->createView(),
  450.         ]);
  451.     }
  452.     /**
  453.      * @Route("/zones-travaux-isolation/{city}", name="isolation")
  454.      * @param $city
  455.      * @param Session $session
  456.      * @param Request $request
  457.      * @return Response
  458.      */
  459.     public function isolation($citySession $sessionRequest $request)
  460.     {
  461.         $session $session->Session($request);
  462.         if ($city == "Limoges") {
  463.             return $this->render('zones-travaux/zones-travaux-limoges.html.twig');
  464.         }
  465.         if ($city == "Rochechouart") {
  466.             return $this->render('zones-travaux/zones-travaux-rochechouart.html.twig');
  467.         }
  468.         if ($city == "Saint-Junien") {
  469.             return $this->render('zones-travaux/zones-travaux-saint-junien.html.twig');
  470.         }
  471.         return $this->render('zones-travaux.html.twig');
  472.     }
  473.     /**
  474.      * @Route("/etude_pac", name="etude_pac")
  475.      * @param Session $session
  476.      * @param Request $request
  477.      * @return Response
  478.      */
  479.     public function pub_chauffage_2024(Session $sessionRequest $request)
  480.     {
  481.         $session $session->Session($request);
  482.         return $this->render('pub_chauffage_2024.html.twig');
  483.     }
  484.     /**
  485.      * @Route("/promo-noel", name="promo-noel")
  486.      * @param Session $session
  487.      * @param Request $request
  488.      * @param ManagerRegistry $doctrine
  489.      * @return Response
  490.      */
  491.     public function promo_noel(Session $sessionRequest $requestManagerRegistry $doctrine)
  492.     {
  493.         $session $session->Session($request);
  494.         $diagnostique = new Evosimul();
  495.         $form $this->createForm(DiagnostiqueFormType::class, $diagnostique);
  496.         $form->handleRequest($request);
  497.         if ($form->isSubmitted() && $form->isValid()) {
  498.             $this->addFlash(
  499.                 'success',
  500.                 'Nous avons bien reçu votre demande ! Nous allons vous
  501.                 contacter d\'ici peu, merci de votre confiance.'
  502.             );
  503.             $diagnostique $form->getData();
  504.             $nom $diagnostique->getNom();
  505.             $prenom $diagnostique->getPrenom();
  506.             $ville $diagnostique->getVille();
  507.             $projet $diagnostique->getProjet();
  508.             $comments $diagnostique->getComments();
  509.             $mail $diagnostique->getEmail();
  510.             $phone $diagnostique->getTel();
  511.             $entityManager $doctrine->getManager();
  512.             $entityManager->persist($diagnostique);
  513.             $entityManager->flush();
  514.             // Put here your valid email address
  515.             $to "contact@evo-logis.fr";
  516.             // Subject of the message
  517.             $subject "Simulation internet";
  518.             // Body of the message, text encoded using iso-8859-1
  519.             $message "$nom , $prenom , $ville , $mail , $phone , $projet , $comments";
  520.             // Headers of the message
  521.             $headers ""// we clear the variable
  522.             $headers "From: Webmaster <webmaster@domain.ext>\n"// Adding the From field
  523.             // $headers = $headers."MIME-Version: 1.0\n"; // Adding the MIME version
  524.             $headers $headers "Content-type: text/plain; charset=iso-8859-1\n"// Add the type of encoding
  525.             // Call the mail function
  526.             mail($to$subject$message$headers);
  527.             return $this->redirectToRoute('promo-noel');
  528.         }
  529.         return $this->renderForm('promo_panneaux_noel.html.twig', ['form' => $form]);
  530.     }
  531.     /**
  532.      * @Route("/resiliation_mail", name="resiliation_mail")
  533.      * @param MailerInterface $mailer
  534.      * @param Request $request
  535.      * @return Response
  536.      */
  537.     public function unsub_mail_list(MailerInterface $mailerRequest $request)
  538.     {
  539.         $defaultData = ['message' => 'Type your message here'];
  540.         $form $this->createFormBuilder($defaultData)
  541.             ->add('email'EmailType::class)
  542.             ->add('captcha'Recaptcha3Type::class, [
  543.                 'constraints' => new Recaptcha3(),
  544.                 'action_name' => 'resiliation_mail',
  545.             ])
  546.             ->add('submit'SubmitType::class, [
  547.                 'label' => 'Envoyer'
  548.             ])
  549.             ->getForm();
  550.         $form->handleRequest($request);
  551.         if ($form->isSubmitted() && $form->isValid()) {
  552.             // data is an array with "name", "email", and "message" keys
  553.             $data $form->getData();
  554.             $this->addFlash(
  555.                 'success',
  556.                 'Votre adresse mail ' $data['email'] . ' sera supprimée de notre liste d\'ici peu, merci de votre confiance.'
  557.             );
  558.             $to 'manu@evo-logis.fr';
  559.             $subject 'Demande suppression mail list!';
  560.             $message $data['email'];
  561.             $headers 'From: manu@evo-logis.fr' "\r\n" .
  562.                 'Reply-To: manu@evo-logis.fr' "\r\n";
  563.             mail($to$subject$message$headers);
  564.         }
  565.         return $this->render('resiliation_mail.html.twig', [
  566.             'form' => $form->createView(),
  567.         ]);
  568.     }
  569.     /**
  570.      * @Route("/promo-tva", name="promo-tva-0")
  571.      * @param Request $request
  572.      * @param ManagerRegistry $doctrine
  573.      * @return Response
  574.      */
  575.     public function promo_aout_tva0(Request $requestManagerRegistry $doctrine)
  576.     {
  577.         $contact = new Evosimul();
  578.         $form $this->createForm(ContactPromoFormType::class, $contact);
  579.         $form->handleRequest($request);
  580.         if ($form->isSubmitted() && $form->isValid()) {
  581.             $this->addFlash(
  582.                 'success',
  583.                 'Nous avons bien reçu votre demande ! Nous allons vous
  584.                 contacter d\'ici peu, merci de votre confiance.'
  585.             );
  586.             $contact $form->getData();
  587.             $nom $contact->getNom();
  588.             $prenom $contact->getPrenom();
  589.             $ville $contact->getVille();
  590.             $projet $contact->getProjet();
  591.             $comments $contact->getComments();
  592.             $mail $contact->getEmail();
  593.             $phone $contact->getTel();
  594.             $entityManager $doctrine->getManager();
  595.             $entityManager->persist($contact);
  596.             $entityManager->flush();
  597.             // Put here your valid email address
  598.             $to "contact@evo-logis.fr";
  599.             // Subject of the message
  600.             $subject "Simulation internet promo tva";
  601.             // Body of the message, text encoded using iso-8859-1
  602.             $message "$nom , $prenom , $ville , $mail , $phone , $projet , $comments";
  603.             // Headers of the message
  604.             $headers ""// we clear the variable
  605.             $headers "From: Webmaster <webmaster@domain.ext>\n"// Adding the From field
  606.             // $headers = $headers."MIME-Version: 1.0\n"; // Adding the MIME version
  607.             $headers $headers "Content-type: text/plain; charset=iso-8859-1\n"// Add the type of encoding
  608.             // Call the mail function
  609.             mail($to$subject$message$headers);
  610.             return $this->redirectToRoute('promo-tva-0');
  611.         }
  612.         return $this->renderForm('pubs/tva-aout-2025.html.twig', ['form' => $form]);
  613.     }
  614. }