<?php
namespace App\Controller;
use App\Entity\Actus;
use App\Entity\Evopub;
use App\Entity\Evosimul;
use App\Entity\Evositepub;
use App\Entity\GoogleMap;
use App\Entity\Statistiquesevo2020;
use App\Entity\Statistiquesevocookies;
use App\Entity\Statistiquesevorobot;
use App\Entity\Statistiquesevosession;
use App\Form\ContactFormType;
use App\Form\DiagnostiqueFormType;
use App\Form\TestGoogleMap;
use App\Repository\SimulSitePanneauxRepository;
use App\Service\Session;
use Doctrine\Persistence\ManagerRegistry;
use Karser\Recaptcha3Bundle\Form\Recaptcha3Type;
use Karser\Recaptcha3Bundle\Validator\Constraints\Recaptcha3;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Mailer\Exception\TransportExceptionInterface;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Mime\Email;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\BinaryFileResponse;
class DefaultController extends AbstractController
{
/**
* @Route("/", name="/")
* @param Session $session
* @param Request $request
* @return Response
*/
public function index(Session $session, Request $request)
{
//$session = $session->Session($request);
// $actusDates = $this->getDoctrine()->getRepository(Actus::class)->findActusOrderedByDates();
return $this->render('home.html.twig'/*, ["actusDates" => $actusDates]*/);
}
/**
* @Route("/m", name="/m")
* @param Session $session
* @param Request $request
* @return Response
*/
public function indexm(Session $session, Request $request)
{
$session = $session->Session($request);
$actusDates = $this->getDoctrine()->getRepository(Actus::class)->findActusOrderedByDates();
return $this->render('home.html.twig', ["actusDates" => $actusDates]);
}
/**
* @Route("/nos_equipes", name="nos_equipes")
* @param Session $session
* @param Request $request
* @return Response
*/
public function equipes(Session $session, Request $request)
{
$session = $session->Session($request);
return $this->render('nos_equipes.html.twig');
}
/**
* @Route("/financements", name="financements")
* @param Session $session
* @param Request $request
* @return Response
*/
public function financements(Session $session, Request $request)
{
$session = $session->Session($request);
return $this->render('financement.html.twig');
}
/**
* @Route("/chauffage", name="chauffage")
* @param Session $session
* @param Request $request
* @return Response
*/
public function chauffage(Session $session, Request $request)
{
$session = $session->Session($request);
return $this->render('chauffage.html.twig');
}
/**
* @Route("/pac-climatisation", name="pac-clim")
* @return Response
*/
public function pac_clim()
{
return $this->render('pac-clim.html.twig');
}
/**
* @Route("/chauffage/pac-air-air", name="chauffage_pac_aa")
* @param Session $session
* @param Request $request
* @return Response
*/
public function chauffage_pac_aa(Session $session, Request $request)
{
// $session = $session->Session($request);
return $this->render('pac-air-air.html.twig');
}
/**
* @Route("/chauffage/pac-air-eau", name="chauffage_pac_ae")
* @param Session $session
* @param Request $request
* @return Response
*/
public function chauffage_pac_ae(Session $session, Request $request)
{
$session = $session->Session($request);
return $this->render('pac-air-eau.html.twig');
}
/**
* @Route("/isol_ecolo", name="isol_ecolo")
* @param Session $session
* @param Request $request
* @return Response
*/
public function isol_ecolo(Session $session, Request $request)
{
$session = $session->Session($request);
return $this->render('isol-ecolo.html.twig');
}
/**
* @Route("/garanties", name="garanties")
* @param Session $session
* @param Request $request
* @return Response
*/
public function garanties(Session $session, Request $request)
{
$session = $session->Session($request);
return $this->render('garanties.html.twig');
}
/**
* @Route("/realisations", name="realisations")
* @param Session $session
* @param Request $request
* @return Response
*/
public function realisations(Session $session, Request $request)
{
$session = $session->Session($request);
return $this->render('realisations.html.twig');
}
/**
* @Route("/realisations-panneaux", name="realisations_panneaux")
* @param Session $session
* @param Request $request
* @return Response
*/
public function realisations_panneaux(Session $session, Request $request)
{
return $this->render('realisations-panneaux.html.twig');
}
/**
* @Route("/services", name="services")
* @param Session $session
* @param Request $request
* @return Response
*/
public function services(Session $session, Request $request)
{
$session = $session->Session($request);
return $this->render('services.html.twig');
}
/**
* @Route("/mentions-legales", name="mentions")
* @param Session $session
* @param Request $request
* @return Response
*/
public function mentions(Session $session, Request $request)
{
$session = $session->Session($request);
return $this->render('mentions.html.twig');
}
/**
* @Route("/zones-travaux-isolation", name="zones-travaux")
* @param Session $session
* @param Request $request
* @return Response
*/
public function zones(Session $session, Request $request)
{
$session = $session->Session($request);
return $this->render('zones-travaux.html.twig');
}
/**
* @Route("/contact", name="contact")
* @param Session $session
* @param Request $request
* @param ManagerRegistry $doctrine
* @return Response
*/
public function contact(Session $session, Request $request, ManagerRegistry $doctrine)
{
$session = $session->Session($request);
$contact = new Evosimul();
$form = $this->createForm(ContactFormType::class, $contact);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$this->addFlash(
'success',
'Nous avons bien reçu votre demande ! Nous allons vous
contacter d\'ici peu, merci de votre confiance.'
);
$contact = $form->getData();
$nom = $contact->getNom();
$prenom = $contact->getPrenom();
$ville = $contact->getVille();
$projet = $contact->getProjet();
$comments = $contact->getComments();
$mail = $contact->getEmail();
$phone = $contact->getTel();
$entityManager = $doctrine->getManager();
$entityManager->persist($contact);
$entityManager->flush();
// Put here your valid email address
$to = "contact@evo-logis.fr";
// Subject of the message
$subject = "Simulation internet";
// Body of the message, text encoded using iso-8859-1
$message = "$nom , $prenom , $ville , $mail , $phone , $projet , $comments";
// Headers of the message
$headers = ""; // we clear the variable
$headers = "From: Webmaster <webmaster@domain.ext>\n"; // Adding the From field
// $headers = $headers."MIME-Version: 1.0\n"; // Adding the MIME version
$headers = $headers."Content-type: text/plain; charset=iso-8859-1\n"; // Add the type of encoding
// Call the mail function
mail($to, $subject, $message, $headers);
return $this->redirectToRoute('contact');
}
return $this->renderForm('contact.html.twig', ['form'=>$form]);
}
/**
* @Route("/simulation", name="simulation")
* @param Session $session
* @param Request $request
* @return Response
*/
public function simulation(Session $session, Request $request)
{
$session = $session->Session($request);
return $this->render('simulation.html.twig');
}
/**
* @Route("/diagnostique_gratuit", name="diagnostique_gratuit")
* @param Session $session
* @param Request $request
* @param ManagerRegistry $doctrine
* @return Response
*/
public function diagnostique_gratuit(Session $session, Request $request, ManagerRegistry $doctrine)
{
$session = $session->Session($request);
$diagnostique = new Evosimul();
$form = $this->createForm(DiagnostiqueFormType::class, $diagnostique);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$this->addFlash(
'success',
'Nous avons bien reçu votre demande ! Nous allons vous
contacter d\'ici peu, merci de votre confiance.'
);
$diagnostique = $form->getData();
$nom = $diagnostique->getNom();
$prenom = $diagnostique->getPrenom();
$ville = $diagnostique->getVille();
$projet = $diagnostique->getProjet();
$comments = $diagnostique->getComments();
$mail = $diagnostique->getEmail();
$phone = $diagnostique->getTel();
$entityManager = $doctrine->getManager();
$entityManager->persist($diagnostique);
$entityManager->flush();
// Put here your valid email address
$to = "contact@evo-logis.fr";
// Subject of the message
$subject = "Simulation internet";
// Body of the message, text encoded using iso-8859-1
$message = "$nom , $prenom , $ville , $mail , $phone , $projet , $comments";
// Headers of the message
$headers = ""; // we clear the variable
$headers = "From: Webmaster <webmaster@domain.ext>\n"; // Adding the From field
// $headers = $headers."MIME-Version: 1.0\n"; // Adding the MIME version
$headers = $headers."Content-type: text/plain; charset=iso-8859-1\n"; // Add the type of encoding
// Call the mail function
mail($to, $subject, $message, $headers);
return $this->redirectToRoute('diagnostique_gratuit');
}
return $this->renderForm('diagnostique_gratuit.html.twig', ['form'=>$form]);
}
/**
* @Route("/diagnostique_gratuit/{random_simul_id}", name="diagnostique_gratuit2")
* @param Session $session
* @param Request $request
* @return Response
*/
public function diagnostique_gratuit_panneaux(Session $session, Request $request,SimulSitePanneauxRepository $simulSitePanneauxRepository,$random_simul_id)
{
$session = $session->Session($request);
$client = $simulSitePanneauxRepository->findOneBy(['random_simul_id'=>$random_simul_id]);
return $this->render('diagnostique_gratuit_panneaux.html.twig',['client'=>$client, 'random_simul_id'=>$random_simul_id]);
}
/**
* @Route("/isolations", name="isolations")
* @param Session $session
* @param Request $request
* @return Response
*/
public function isolations(Session $session, Request $request)
{
$session = $session->Session($request);
return $this->render('isolations/isolations.html.twig');
}
/**
* @Route("/isolation-combles", name="isolation-combles")
* @param Session $session
* @param Request $request
* @return Response
*/
public function isolation_combles(Session $session, Request $request)
{
$session = $session->Session($request);
return $this->render('isolations/isolation-combles.html.twig');
}
/**
* @Route("/isolation-toitures", name="isolation-toitures")
* @param Session $session
* @param Request $request
* @return Response
*/
public function isolation_toitures(Session $session, Request $request)
{
$session = $session->Session($request);
return $this->render('isolations/isolation-toitures.html.twig');
}
/**
* @Route("/isolation-sous-sols", name="isolation-sous-sols")
* @param Session $session
* @param Request $request
* @return Response
*/
public function isolation_sous_sols(Session $session, Request $request)
{
$session = $session->Session($request);
return $this->render('isolations/isolation-sous-sols.html.twig');
}
/**
* @Route("/isolation-murs", name="isolation-murs")
* @param Session $session
* @param Request $request
* @return Response
*/
public function isolation_murs(Session $session, Request $request)
{
$session = $session->Session($request);
return $this->render('isolations/isolation-murs.html.twig');
}
/**
* @Route("/panneau-solaire", name="panneau-solaire")
* @param Session $session
* @param Request $request
* @return Response
*/
public function panneau_solaire(Session $session, Request $request)
{
$session = $session->Session($request);
return $this->render('isolations/panneau-solaire.html.twig');
}
/**
* @Route("/guide-panneau-solaire", name="guide-panneau-solaire")
* @param Session $session
* @param Request $request
* @return Response
*/
public function guide_panneau_solaire(Session $session, Request $request)
{
$session = $session->Session($request);
return $this->render('isolations/guide-panneau-solaire.html.twig');
}
/**
* @Route("/promo-panneau-solaire", name="promo-panneau-solaire")
* @param Session $session
* @param Request $request
* @return Response
*/
public function promo_panneau_solaire(Session $session, Request $request)
{
$session = $session->Session($request);
return $this->render('isolations/conditions-promo-solaire-4999.html.twig');
}
/**
* @Route("/borne-recharge", name="borne-recharge")
* @param Session $session
* @param Request $request
* @return Response
*/
public function borne_recharge(Session $session, Request $request)
{
$session = $session->Session($request);
return $this->render('isolations/borne-recharge.html.twig');
}
/**
* @Route("/le-saviez-vous", name="lsv")
* @param Session $session
* @param Request $request
* @return Response
*/
public function lsv(Session $session, Request $request)
{
$session = $session->Session($request);
return $this->render('le-saviez-vous.html.twig');
}
/**
* @Route("/maps", name="maps")
* @param Session $session
* @param Request $request
* @return Response
*/
public function maps(Session $session, Request $request)
{
$task = new GoogleMap();
$form = $this->createForm(TestGoogleMap::class, $task);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
// $form->getData() holds the submitted values
// but, the original `$task` variable has also been updated
$values = $form->getData();
// ... perform some action, such as saving the task to the database
// for example, if Task is a Doctrine entity, save it!
// $entityManager = $this->getDoctrine()->getManager();
// $entityManager->persist($task);
// $entityManager->flush();
return $this->render('maps.html.twig', [
'form' => $form->createView(), 'values'=>$values,
]);
}
return $this->render('maps.html.twig', [
'form' => $form->createView(),
]);
}
/**
* @Route("/zones-travaux-isolation/{city}", name="isolation")
* @param $city
* @param Session $session
* @param Request $request
* @return Response
*/
public function isolation($city, Session $session, Request $request)
{
$session = $session->Session($request);
if ($city == "Limoges") {
return $this->render('zones-travaux/zones-travaux-limoges.html.twig');
}
if ($city == "Rochechouart") {
return $this->render('zones-travaux/zones-travaux-rochechouart.html.twig');
}
if ($city == "Saint-Junien") {
return $this->render('zones-travaux/zones-travaux-saint-junien.html.twig');
}
return $this->render('zones-travaux.html.twig');
}
/**
* @Route("/etude_pac", name="etude_pac")
* @param Session $session
* @param Request $request
* @return Response
*/
public function pub_chauffage_2024(Session $session, Request $request)
{
$session = $session->Session($request);
return $this->render('pub_chauffage_2024.html.twig');
}
/**
* @Route("/promo-noel", name="promo-noel")
* @param Session $session
* @param Request $request
* @param ManagerRegistry $doctrine
* @return Response
*/
public function promo_noel(Session $session, Request $request, ManagerRegistry $doctrine)
{
$session = $session->Session($request);
$diagnostique = new Evosimul();
$form = $this->createForm(DiagnostiqueFormType::class, $diagnostique);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$this->addFlash(
'success',
'Nous avons bien reçu votre demande ! Nous allons vous
contacter d\'ici peu, merci de votre confiance.'
);
$diagnostique = $form->getData();
$nom = $diagnostique->getNom();
$prenom = $diagnostique->getPrenom();
$ville = $diagnostique->getVille();
$projet = $diagnostique->getProjet();
$comments = $diagnostique->getComments();
$mail = $diagnostique->getEmail();
$phone = $diagnostique->getTel();
$entityManager = $doctrine->getManager();
$entityManager->persist($diagnostique);
$entityManager->flush();
// Put here your valid email address
$to = "contact@evo-logis.fr";
// Subject of the message
$subject = "Simulation internet";
// Body of the message, text encoded using iso-8859-1
$message = "$nom , $prenom , $ville , $mail , $phone , $projet , $comments";
// Headers of the message
$headers = ""; // we clear the variable
$headers = "From: Webmaster <webmaster@domain.ext>\n"; // Adding the From field
// $headers = $headers."MIME-Version: 1.0\n"; // Adding the MIME version
$headers = $headers."Content-type: text/plain; charset=iso-8859-1\n"; // Add the type of encoding
// Call the mail function
mail($to, $subject, $message, $headers);
return $this->redirectToRoute('promo-noel');
}
return $this->renderForm('promo_panneaux_noel.html.twig', ['form'=>$form]);
}
/**
* @Route("/resiliation_mail", name="resiliation_mail")
* @param MailerInterface $mailer
* @param Request $request
* @return Response
*/
public function unsub_mail_list(MailerInterface $mailer, Request $request){
$defaultData = ['message' => 'Type your message here'];
$form = $this->createFormBuilder($defaultData)
->add('email', EmailType::class)
->add('captcha', Recaptcha3Type::class, [
'constraints' => new Recaptcha3(),
'action_name' => 'resiliation_mail',
])
->add('submit',SubmitType::class,[
'label' => 'Envoyer'
])
->getForm();
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
// data is an array with "name", "email", and "message" keys
$data = $form->getData();
$this->addFlash(
'success',
'Votre adresse mail '. $data['email'] .' sera supprimée de notre liste d\'ici peu, merci de votre confiance.'
);
$to = 'manu@evo-logis.fr';
$subject = 'Demande suppression mail list!';
$message = $data['email'];
$headers = 'From: manu@evo-logis.fr' . "\r\n" .
'Reply-To: manu@evo-logis.fr' . "\r\n";
mail($to, $subject, $message, $headers);
}
return $this->render('resiliation_mail.html.twig', [
'form' => $form->createView(),
]);
}
}