src/Controller/DefaultController.php line 526

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