src/Controller/MainController.php line 72

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Product;
  4. use App\Form\ContactFormType;
  5. use App\Repository\ProductActionRepository;
  6. use App\Repository\ProductCategoryRepository;
  7. use App\Repository\ProductRepository;
  8. use App\Service\CoverDesignHelper;
  9. use http\Exception;
  10. use Knp\Component\Pager\PaginatorInterface;
  11. use SendGrid;
  12. use Symfony\Bridge\Twig\Mime\TemplatedEmail;
  13. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  14. use Symfony\Component\Mailer\MailerInterface;
  15. use Symfony\Component\Routing\Annotation\Route;
  16. use Mobile_Detect;
  17. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  18. use Symfony\Component\HttpFoundation\Request;
  19. use Twig\Environment;
  20. class MainController extends AbstractController
  21. {
  22.     /**
  23.      * @var Environment
  24.      */
  25.     private $twig;
  26.     /**
  27.      * @var PaginatorInterface
  28.      */
  29.     private $paginator;
  30.     /**
  31.      * @var CoverDesignHelper
  32.      */
  33.     private $coverDesignHelper;
  34.     /**
  35.      * @var Mobile_Detect
  36.      */
  37.     private $mobileDetect;
  38.     /**
  39.      * @var SessionInterface
  40.      */
  41.     private $session;
  42.     public function __construct(SessionInterface $sessionEnvironment $twigPaginatorInterface $paginatorCoverDesignHelper $coverDesignHelper)
  43.     {
  44.         $this->session $session;
  45.         $this->twig $twig// pour ajouter des globals (dispo pour tous les templates)
  46.         $this->paginator $paginator;
  47.         $this->coverDesignHelper $coverDesignHelper;
  48.         // MOBILE DETECT
  49.         $this->mobileDetect = new Mobile_Detect;
  50.         $this->twig->addGlobal('is_mobile'$this->mobileDetect->isMobile());
  51.         // CONTACT
  52.         // email/tel encode
  53.         $contact['phone'] = "04 79 96 98 62";
  54.         $contact['phone_encode'] = base64_encode("tel:".$contact['phone']);
  55.         $contact['email'] = "cover.designauto@gmail.com";
  56.         $contact['email_encode'] = base64_encode("mailto:".$contact['email']);
  57.         $this->twig->addGlobal('contact'$contact);
  58.     }
  59.     /**
  60.      * @Route("/", name="home")
  61.      */
  62.     public function index()
  63.     {
  64.         return $this->render('main/home.html.twig', [
  65.         ]);
  66.     }
  67.     /**
  68.      * @Route("/detailing-traitement-ceramique-renovation", name="detailing")
  69.      */
  70.     public function detailing()
  71.     {
  72.         // Galerie photos > images
  73.         $images = array();
  74.         $url_galery '/galeries/detailing/';
  75.         $images[] = array('url_thumbs' => $url_galery.'ferrari-488-01_thumbs.jpg''url_large' => $url_galery.'ferrari-488-01_large.jpg','caption' => 'Ferrari 488 ');
  76.         $images[] = array('url_thumbs' => $url_galery.'ferrari-488-02_thumbs.jpg''url_large' => $url_galery.'ferrari-488-02_large.jpg','caption' => 'Ferrari 488 ');
  77.         $images[] = array('url_thumbs' => $url_galery.'ferrari-488-03_thumbs.jpg''url_large' => $url_galery.'ferrari-488-03_large.jpg','caption' => 'Ferrari 488 ');
  78.         $images[] = array('url_thumbs' => $url_galery.'abarth-70anniversaire-01_thumbs.jpg''url_large' => $url_galery.'abarth-70anniversaire-01_large.jpg','caption' => 'Abarth 70 BirthDay');
  79.         $images[] = array('url_thumbs' => $url_galery.'abarth-70anniversaire-02_thumbs.jpg''url_large' => $url_galery.'abarth-70anniversaire-02_large.jpg','caption' => 'Abarth 70 BirthDay');
  80.         $images[] = array('url_thumbs' => $url_galery.'abarth-70anniversaire-03_thumbs.jpg''url_large' => $url_galery.'abarth-70anniversaire-03_large.jpg','caption' => 'Abarth 70 BirthDay');
  81.         $images[] = array('url_thumbs' => $url_galery.'audi-r8-01_thumbs.jpg''url_large' => $url_galery.'audi-r8-01_large.jpg','caption' => 'Audi R8');
  82.         $images[] = array('url_thumbs' => $url_galery.'audi-r8-02_thumbs.jpg''url_large' => $url_galery.'audi-r8-02_large.jpg','caption' => 'Audi R8');
  83.         $images[] = array('url_thumbs' => $url_galery.'audi-r8-03_thumbs.jpg''url_large' => $url_galery.'audi-r8-03_large.jpg','caption' => 'Audi R8');
  84.         $images[] = array('url_thumbs' => $url_galery.'porsche-911carreragts-01_thumbs.jpg''url_large' => $url_galery.'porsche-911carreragts-01_large.jpg','caption' => 'Porsche 991 GTS');
  85.         $images[] = array('url_thumbs' => $url_galery.'porsche-911carreragts-02_thumbs.jpg''url_large' => $url_galery.'porsche-911carreragts-02_large.jpg','caption' => 'Porsche 991 GTS');
  86.         $images[] = array('url_thumbs' => $url_galery.'porsche-911carreragts-03_thumbs.jpg''url_large' => $url_galery.'porsche-911carreragts-03_large.jpg','caption' => 'Porsche 991 GTS');
  87.         $images[] = array('url_thumbs' => $url_galery.'bmw-m2-01_thumbs.jpg''url_large' => $url_galery.'bmw-m2-01_large.jpg','caption' => 'BMW M2');
  88.         $images[] = array('url_thumbs' => $url_galery.'bmw-m2-02_thumbs.jpg''url_large' => $url_galery.'bmw-m2-02_large.jpg','caption' => 'BMW M2');
  89.         $images[] = array('url_thumbs' => $url_galery.'bmw-m2-03_thumbs.jpg''url_large' => $url_galery.'bmw-m2-03_large.jpg','caption' => 'BMW M2');
  90.         $images[] = array('url_thumbs' => $url_galery.'audi-rs3-01_thumbs.jpg''url_large' => $url_galery.'audi-rs3-01_large.jpg','caption' => 'Audi RS3');
  91.         $images[] = array('url_thumbs' => $url_galery.'audi-rs3-02_thumbs.jpg''url_large' => $url_galery.'audi-rs3-02_large.jpg','caption' => 'Audi RS3');
  92.         $images[] = array('url_thumbs' => $url_galery.'audi-rs3-03_thumbs.jpg''url_large' => $url_galery.'audi-rs3-03_large.jpg','caption' => 'Audi RS3');
  93.         $images[] = array('url_thumbs' => $url_galery.'bmw-x6m-01_thumbs.jpg''url_large' => $url_galery.'bmw-x6m-01_large.jpg','caption' => 'BMW X6M Compétition');
  94.         $images[] = array('url_thumbs' => $url_galery.'bmw-x6m-02_thumbs.jpg''url_large' => $url_galery.'bmw-x6m-02_large.jpg','caption' => 'BMW X6M Compétition');
  95.         $images[] = array('url_thumbs' => $url_galery.'bmw-x6m-03_thumbs.jpg''url_large' => $url_galery.'bmw-x6m-03_large.jpg','caption' => 'BMW X6M Compétition');
  96.         $images[] = array('url_thumbs' => $url_galery.'ford-mustang-bullitt-01_thumbs.jpg''url_large' => $url_galery.'ford-mustang-bullitt-01_large.jpg','caption' => 'ford-mustang-bullitt');
  97.         $images[] = array('url_thumbs' => $url_galery.'ford-mustang-bullitt-02_thumbs.jpg''url_large' => $url_galery.'ford-mustang-bullitt-02_large.jpg','caption' => 'ford-mustang-bullitt');
  98.         $images[] = array('url_thumbs' => $url_galery.'ford-mustang-bullitt-03_thumbs.jpg''url_large' => $url_galery.'ford-mustang-bullitt-03_large.jpg','caption' => 'ford-mustang-bullitt');
  99.         $images[] = array('url_thumbs' => $url_galery.'ford-mustanggt-01_thumbs.jpg''url_large' => $url_galery.'ford-mustanggt-01_large.jpg','caption' => 'Ford Mustang gt');
  100.         $images[] = array('url_thumbs' => $url_galery.'ford-mustanggt-02_thumbs.jpg''url_large' => $url_galery.'ford-mustanggt-02_large.jpg','caption' => 'Ford Mustang gt');
  101.         $images[] = array('url_thumbs' => $url_galery.'ford-mustanggt-03_thumbs.jpg''url_large' => $url_galery.'ford-mustanggt-03_large.jpg','caption' => 'Ford Mustang gt');
  102.         $images[] = array('url_thumbs' => $url_galery.'porsche-boxter-01_thumbs.jpg''url_large' => $url_galery.'porsche-boxter-01_large.jpg','caption' => 'Porsche Boxter');
  103.         $images[] = array('url_thumbs' => $url_galery.'porsche-boxter-02_thumbs.jpg''url_large' => $url_galery.'porsche-boxter-02_large.jpg','caption' => 'Porsche Boxter');
  104.         $images[] = array('url_thumbs' => $url_galery.'porsche-boxter-03_thumbs.jpg''url_large' => $url_galery.'porsche-boxter-03_large.jpg','caption' => 'Porsche Boxter');
  105.         return $this->render('main/page-detailing.html.twig', [
  106.             'images' => $images
  107.            ]);
  108.     }
  109.     /**
  110.      * @Route("/regeneration-de-surface-chambery", name="regeneration-surface")
  111.      */
  112.     public function regeneration_surface()
  113.     {
  114.         // Galerie photos > images
  115.         $images = array();
  116.         $url_galery '/galeries/regeneration-surface/';
  117.         $images[] = array('url_thumbs' => $url_galery.'audi-rs3-01_thumbs.jpg''url_large' => $url_galery.'audi-rs3-01_large.jpg','caption' => 'audi-rs3');
  118.         $images[] = array('url_thumbs' => $url_galery.'audi-rs3-02_thumbs.jpg''url_large' => $url_galery.'audi-rs3-02_large.jpg','caption' => 'audi-rs3');
  119.         $images[] = array('url_thumbs' => $url_galery.'audi-rs3-03_thumbs.jpg''url_large' => $url_galery.'audi-rs3-03_large.jpg','caption' => 'audi-rs3');
  120.         $images[] = array('url_thumbs' => $url_galery.'audi-rs3-04_thumbs.jpg''url_large' => $url_galery.'audi-rs3-04_large.jpg','caption' => 'audi-rs3');
  121.         $images[] = array('url_thumbs' => $url_galery.'audi-rs3-05_thumbs.jpg''url_large' => $url_galery.'audi-rs3-05_large.jpg','caption' => 'audi-rs3');
  122.         $images[] = array('url_thumbs' => $url_galery.'audi-rs3-06_thumbs.jpg''url_large' => $url_galery.'audi-rs3-06_large.jpg','caption' => 'audi-rs3');
  123.         $images[] = array('url_thumbs' => $url_galery.'audi-rs3-07_thumbs.jpg''url_large' => $url_galery.'audi-rs3-07_large.jpg','caption' => 'audi-rs3');
  124.         $images[] = array('url_thumbs' => $url_galery.'audi-rs3-08_thumbs.jpg''url_large' => $url_galery.'audi-rs3-08_large.jpg','caption' => 'audi-rs3');
  125.         $images[] = array('url_thumbs' => $url_galery.'mini-01_thumbs.jpg''url_large' => $url_galery.'mini-01_large.jpg','caption' => 'mini');
  126.         $images[] = array('url_thumbs' => $url_galery.'mini-02_thumbs.jpg''url_large' => $url_galery.'mini-02_large.jpg','caption' => 'mini');
  127.         $images[] = array('url_thumbs' => $url_galery.'mini-03_thumbs.jpg''url_large' => $url_galery.'mini-03_large.jpg','caption' => 'mini');
  128.         return $this->render('main/page-regeneration-surface.html.twig', [
  129.             'images' => $images
  130.         ]);
  131.     }
  132.     /**
  133.      * @Route("/covering-total-partiel-chambery", name="covering")
  134.      */
  135.     public function covering()
  136.     {
  137.         // Galerie photos > images
  138.         $images = array();
  139.         $url_galery '/galeries/covering/';
  140.         $images[] = array('url_thumbs' => $url_galery.'audi-r8lms-01_thumbs.jpg''url_large' => $url_galery.'audi-r8lms-01_large.jpg','caption' => 'audi-r8lms');
  141.         $images[] = array('url_thumbs' => $url_galery.'audi-r8lms-02_thumbs.jpg''url_large' => $url_galery.'audi-r8lms-02_large.jpg','caption' => 'audi-r8lms');
  142.         $images[] = array('url_thumbs' => $url_galery.'audi-r8lms-03_thumbs.jpg''url_large' => $url_galery.'audi-r8lms-03_large.jpg','caption' => 'audi-r8lms');
  143.         $images[] = array('url_thumbs' => $url_galery.'vw-golfgti-01_thumbs.jpg''url_large' => $url_galery.'vw-golfgti-01_large.jpg','caption' => 'vw-golfgti');
  144.         $images[] = array('url_thumbs' => $url_galery.'vw-golfgti-02_thumbs.jpg''url_large' => $url_galery.'vw-golfgti-02_large.jpg','caption' => 'vw-golfgti');
  145.         $images[] = array('url_thumbs' => $url_galery.'vw-golfgti-03_thumbs.jpg''url_large' => $url_galery.'vw-golfgti-03_large.jpg','caption' => 'vw-golfgti');
  146.         $images[] = array('url_thumbs' => $url_galery.'coolracing-lmp2-01_thumbs.jpg''url_large' => $url_galery.'coolracing-lmp2-01_large.jpg','caption' => 'Cool Racing');
  147.         $images[] = array('url_thumbs' => $url_galery.'coolracing-lmp2-02_thumbs.jpg''url_large' => $url_galery.'coolracing-lmp2-02_large.jpg','caption' => 'Cool Racing');
  148.         $images[] = array('url_thumbs' => $url_galery.'coolracing-lmp2-03_thumbs.jpg''url_large' => $url_galery.'coolracing-lmp2-03_large.jpg','caption' => 'Cool Racing');
  149.         $images[] = array('url_thumbs' => $url_galery.'coolracing-lmp2-04_thumbs.jpg''url_large' => $url_galery.'coolracing-lmp2-04_large.jpg','caption' => 'Cool Racing');
  150.         $images[] = array('url_thumbs' => $url_galery.'coolracing-lmp2-05_thumbs.jpg''url_large' => $url_galery.'coolracing-lmp2-05_large.jpg','caption' => 'Cool Racing');
  151.         $images[] = array('url_thumbs' => $url_galery.'coolracing-lpm3-01_thumbs.jpg''url_large' => $url_galery.'coolracing-lpm3-01_large.jpg','caption' => 'Cool Racing');
  152.         $images[] = array('url_thumbs' => $url_galery.'ferrari-812-01_thumbs.jpg''url_large' => $url_galery.'ferrari-812-01_large.jpg','caption' => 'ferrari-812-superfast');
  153.         $images[] = array('url_thumbs' => $url_galery.'ferrari-812-02_thumbs.jpg''url_large' => $url_galery.'ferrari-812-02_large.jpg','caption' => 'ferrari-812-superfast');
  154.         $images[] = array('url_thumbs' => $url_galery.'ferrari-812-03_thumbs.jpg''url_large' => $url_galery.'ferrari-812-03_large.jpg','caption' => 'ferrari-812-superfast');
  155.         $images[] = array('url_thumbs' => $url_galery.'ford-focusrs-01_thumbs.jpg''url_large' => $url_galery.'ford-focusrs-01_large.jpg','caption' => 'ford-focusrs');
  156.         $images[] = array('url_thumbs' => $url_galery.'ford-focusrs-02_thumbs.jpg''url_large' => $url_galery.'ford-focusrs-02_large.jpg','caption' => 'ford-focusrs');
  157.         $images[] = array('url_thumbs' => $url_galery.'ford-focusrs-03_thumbs.jpg''url_large' => $url_galery.'ford-focusrs-03_large.jpg','caption' => 'ford-focusrs');
  158.         $images[] = array('url_thumbs' => $url_galery.'helicoptere-01_thumbs.jpg''url_large' => $url_galery.'helicoptere-01_large.jpg','caption' => 'helicoptere');
  159.         $images[] = array('url_thumbs' => $url_galery.'helicoptere-02_thumbs.jpg''url_large' => $url_galery.'helicoptere-02_large.jpg','caption' => 'helicoptere');
  160.         $images[] = array('url_thumbs' => $url_galery.'helicoptere-03_thumbs.jpg''url_large' => $url_galery.'helicoptere-03_large.jpg','caption' => 'helicoptere');
  161.         $images[] = array('url_thumbs' => $url_galery.'lamborghini-urus-01_thumbs.jpg''url_large' => $url_galery.'lamborghini-urus-01_large.jpg','caption' => 'lamborghini-urus');
  162.         $images[] = array('url_thumbs' => $url_galery.'lamborghini-urus-02_thumbs.jpg''url_large' => $url_galery.'lamborghini-urus-02_large.jpg','caption' => 'lamborghini-urus');
  163.         $images[] = array('url_thumbs' => $url_galery.'lamborghini-urus-03_thumbs.jpg''url_large' => $url_galery.'lamborghini-urus-03_large.jpg','caption' => 'lamborghini-urus');
  164.         $images[] = array('url_thumbs' => $url_galery.'mitsubishi-sto-01_thumbs.jpg''url_large' => $url_galery.'mitsubishi-sto-01_large.jpg','caption' => 'mitsubishi-sto');
  165.         $images[] = array('url_thumbs' => $url_galery.'mitsubishi-sto-02_thumbs.jpg''url_large' => $url_galery.'mitsubishi-sto-02_large.jpg','caption' => 'mitsubishi-sto');
  166.         $images[] = array('url_thumbs' => $url_galery.'mitsubishi-sto-03_thumbs.jpg''url_large' => $url_galery.'mitsubishi-sto-03_large.jpg','caption' => 'mitsubishi-sto');
  167.         $images[] = array('url_thumbs' => $url_galery.'lamborghini-urus-04_thumbs.jpg''url_large' => $url_galery.'lamborghini-urus-04_large.jpg','caption' => 'lamborghini-urus');
  168.         $images[] = array('url_thumbs' => $url_galery.'lamborghini-urus-05_thumbs.jpg''url_large' => $url_galery.'lamborghini-urus-05_large.jpg','caption' => 'lamborghini-urus');
  169.         $images[] = array('url_thumbs' => $url_galery.'lamborghini-urus-06_thumbs.jpg''url_large' => $url_galery.'lamborghini-urus-06_large.jpg','caption' => 'lamborghini-urus');
  170.         $images[] = array('url_thumbs' => $url_galery.'opel-opc-01_thumbs.jpg''url_large' => $url_galery.'opel-opc-01_large.jpg','caption' => 'opel-opc');
  171.         $images[] = array('url_thumbs' => $url_galery.'opel-opc-02_thumbs.jpg''url_large' => $url_galery.'opel-opc-02_large.jpg','caption' => 'opel-opc');
  172.         $images[] = array('url_thumbs' => $url_galery.'opel-opc-03_thumbs.jpg''url_large' => $url_galery.'opel-opc-03_large.jpg','caption' => 'opel-opc');
  173.         $images[] = array('url_thumbs' => $url_galery.'porsche-gt3-01_thumbs.jpg''url_large' => $url_galery.'porsche-gt3-01_large.jpg','caption' => 'porsche-gt3');
  174.         $images[] = array('url_thumbs' => $url_galery.'porsche-gt3-02_thumbs.jpg''url_large' => $url_galery.'porsche-gt3-02_large.jpg','caption' => 'porsche-gt3');
  175.         $images[] = array('url_thumbs' => $url_galery.'porsche-gt3-03_thumbs.jpg''url_large' => $url_galery.'porsche-gt3-03_large.jpg','caption' => 'porsche-gt3');
  176.         $images[] = array('url_thumbs' => $url_galery.'skoda-kodiaq-01_thumbs.jpg''url_large' => $url_galery.'skoda-kodiaq-01_large.jpg','caption' => 'skoda-kodiaq');
  177.         $images[] = array('url_thumbs' => $url_galery.'skoda-kodiaq-02_thumbs.jpg''url_large' => $url_galery.'skoda-kodiaq-02_large.jpg','caption' => 'skoda-kodiaq');
  178.         $images[] = array('url_thumbs' => $url_galery.'skoda-kodiaq-03_thumbs.jpg''url_large' => $url_galery.'skoda-kodiaq-03_large.jpg','caption' => 'skoda-kodiaq');
  179.         $images[] = array('url_thumbs' => $url_galery.'racingspiritoflemans-lpm3-01_thumbs.jpg''url_large' => $url_galery.'racingspiritoflemans-lpm3-01_large.jpg','caption' => 'racingspiritoflemans-lpm3');
  180.         $images[] = array('url_thumbs' => $url_galery.'racingspiritoflemans-lpm3-02_thumbs.jpg''url_large' => $url_galery.'racingspiritoflemans-lpm3-02_large.jpg','caption' => 'racingspiritoflemans-lpm3');
  181.         return $this->render('main/page-covering.html.twig', [
  182.             'images' => $images
  183.         ]);
  184.     }
  185.     /**
  186.      * @Route("/protection-ppf-film-xpel-chambery", name="ppf")
  187.      */
  188.     public function ppf()
  189.     {
  190.         // Galerie photos > images
  191.         $images = array();
  192.         $url_galery '/galeries/ppf/';
  193.         $images[] = array('url_thumbs' => $url_galery.'ferrari-488-01_thumbs.jpg''url_large' => $url_galery.'ferrari-488-01_large.jpg','caption' => 'ferrari-488-pista');
  194.         $images[] = array('url_thumbs' => $url_galery.'ferrari-488-02_thumbs.jpg''url_large' => $url_galery.'ferrari-488-02_large.jpg','caption' => 'ferrari-488-pista');
  195.         $images[] = array('url_thumbs' => $url_galery.'ferrari-488-03_thumbs.jpg''url_large' => $url_galery.'ferrari-488-03_large.jpg','caption' => 'ferrari-488-pista');
  196.         $images[] = array('url_thumbs' => $url_galery.'porsche-taycan-01_thumbs.jpg''url_large' => $url_galery.'porsche-taycan-01_large.jpg','caption' => 'porsche-taycan');
  197.         $images[] = array('url_thumbs' => $url_galery.'porsche-taycan-02_thumbs.jpg''url_large' => $url_galery.'porsche-taycan-02_large.jpg','caption' => 'porsche-taycan');
  198.         $images[] = array('url_thumbs' => $url_galery.'porsche-taycan-03_thumbs.jpg''url_large' => $url_galery.'porsche-taycan-03_large.jpg','caption' => 'porsche-taycan');
  199.         $images[] = array('url_thumbs' => $url_galery.'porsche-gt2rs-01_thumbs.jpg''url_large' => $url_galery.'porsche-gt2rs-01_large.jpg','caption' => 'porsche-gt2rs');
  200.         $images[] = array('url_thumbs' => $url_galery.'porsche-gt2rs-02_thumbs.jpg''url_large' => $url_galery.'porsche-gt2rs-02_large.jpg','caption' => 'porsche-gt2rs');
  201.         $images[] = array('url_thumbs' => $url_galery.'porsche-gt2rs-03_thumbs.jpg''url_large' => $url_galery.'porsche-gt2rs-03_large.jpg','caption' => 'porsche-gt2rs');
  202.         $images[] = array('url_thumbs' => $url_galery.'porsche-gt3-01_thumbs.jpg''url_large' => $url_galery.'porsche-gt3-01_large.jpg','caption' => 'porsche-gt3');
  203.         $images[] = array('url_thumbs' => $url_galery.'porsche-gt3-02_thumbs.jpg''url_large' => $url_galery.'porsche-gt3-02_large.jpg','caption' => 'porsche-gt3');
  204.         $images[] = array('url_thumbs' => $url_galery.'porsche-gt3-03_thumbs.jpg''url_large' => $url_galery.'porsche-gt3-03_large.jpg','caption' => 'porsche-gt3');
  205.         return $this->render('main/page-ppf.html.twig', [
  206.             'images' => $images
  207.         ]);
  208.     }
  209.     /**
  210.      * @Route("/vitres-teintees-film-solaire-chambery", name="vitres-teintees")
  211.      */
  212.     public function vitres_teintees()
  213.     {
  214.         return $this->render('main/page-vitres-teintees.html.twig', [
  215.         ]);
  216.     }
  217.     /**
  218.      * @Route("/reprogrammation-moteur-br-performance-chambery", name="reprogrammation-moteur")
  219.      */
  220.     public function reprogrammation_moteur()
  221.     {
  222.         return $this->render('main/page-reprogrammation-moteur.html.twig', [
  223.         ]);
  224.     }
  225.     /**
  226.      * @Route("/jantes-et-pneus-chambery", name="jantes-et-pneus")
  227.      */
  228.     public function jantes_et_pneus()
  229.     {
  230.         // Galerie photos > images
  231.         $images = array();
  232.         $url_galery '/galeries/jantes-et-pneus/';
  233.         $images[] = array('url_thumbs' => $url_galery.'jante-ferrari-02_thumbs.jpg''url_large' => $url_galery.'jante-ferrari-02_large.jpg','caption' => 'jante ferrari');
  234.         $images[] = array('url_thumbs' => $url_galery.'jante-hre-01_thumbs.jpg''url_large' => $url_galery.'jante-hre-01_large.jpg','caption' => 'jante hre');
  235.         $images[] = array('url_thumbs' => $url_galery.'jante-hre-02_thumbs.jpg''url_large' => $url_galery.'jante-hre-02_large.jpg','caption' => 'jante hre');
  236.         $images[] = array('url_thumbs' => $url_galery.'jante-vellano-01_thumbs.jpg''url_large' => $url_galery.'jante-vellano-01_large.jpg','caption' => 'jante vellano');
  237.         $images[] = array('url_thumbs' => $url_galery.'jante-vossen-01_thumbs.jpg''url_large' => $url_galery.'jante-vossen-01_large.jpg','caption' => 'jante vossen');
  238.         $images[] = array('url_thumbs' => $url_galery.'jante-vossen-02_thumbs.jpg''url_large' => $url_galery.'jante-vossen-02_large.jpg','caption' => 'jante vossen ferrari');
  239.         return $this->render('main/page-jantes-et-pneus.html.twig', [
  240.             'images' => $images
  241.         ]);
  242.     }
  243.     /**
  244.      * @Route("/nettoyage-interieur-exterieur-cryogenie-chambery", name="nettoyage-et-cryogenie")
  245.      */
  246.     public function nettoyage_et_cryogenie()
  247.     {
  248.         // Galerie photos > images
  249.         $images = array();
  250.         $url_galery '/galeries/cryogenie/';
  251.         $images[] = array('url_thumbs' => $url_galery.'nettoyage-cryogenie-01_thumbs.jpg''url_large' => $url_galery.'nettoyage-cryogenie-01_large.jpg','caption' => 'nettoyage-cryogenie');
  252.         $images[] = array('url_thumbs' => $url_galery.'nettoyage-cryogenie-02_thumbs.jpg''url_large' => $url_galery.'nettoyage-cryogenie-02_large.jpg','caption' => 'nettoyage-cryogenie');
  253.         $images[] = array('url_thumbs' => $url_galery.'nettoyage-cryogenie-03_thumbs.jpg''url_large' => $url_galery.'nettoyage-cryogenie-03_large.jpg','caption' => 'nettoyage-cryogenie');
  254.         return $this->render('main/page-nettoyage-et-cryogenie.html.twig', [
  255.             'images' => $images
  256.         ]);
  257.     }
  258.     /**
  259.      * @Route("/accessoires-automobiles-chambery", name="accessoires")
  260.      */
  261.     public function accessoires()
  262.     {
  263.         return $this->render('main/page-accessoires.html.twig', [
  264.         ]);
  265.     }
  266.     /**
  267.      * @Route("/sport-auto-competition", name="sport-auto")
  268.      */
  269.     public function sport_auto()
  270.     {
  271.         // Galerie photos > 3 galeries
  272.         //
  273.         $images = array();
  274.         $url_galery '/galeries/sport-auto/gck/';
  275.         $images[] = array('url_thumbs' => $url_galery.'gck-fiarallycross-01_thumbs.jpg''url_large' => $url_galery.'gck-fiarallycross-01_large.jpg','caption' => 'gck-fiarallycross');
  276.         $images[] = array('url_thumbs' => $url_galery.'gck-fiarallycross-02_thumbs.jpg''url_large' => $url_galery.'gck-fiarallycross-02_large.jpg','caption' => 'gck-fiarallycross');
  277.         $images[] = array('url_thumbs' => $url_galery.'gck-fiarallycross-03_thumbs.jpg''url_large' => $url_galery.'gck-fiarallycross-03_large.jpg','caption' => 'gck-fiarallycross');
  278.         // Galerie photos
  279.         $images_2 = array();
  280.         $url_galery '/galeries/sport-auto/';
  281.         $images_2[] = array('url_thumbs' => $url_galery.'racing-spirit-of-leman-01_thumbs.jpg''url_large' => $url_galery.'racing-spirit-of-leman-01_large.jpg','caption' => 'racing-spirit-of-leman');
  282.         $images_2[] = array('url_thumbs' => $url_galery.'racing-spirit-of-leman-02_thumbs.jpg''url_large' => $url_galery.'racing-spirit-of-leman-02_large.jpg','caption' => 'racing-spirit-of-leman');
  283.         // Galerie photos
  284.         $images_3 = array();
  285.         $url_galery '/galeries/sport-auto/clx/';
  286.         $images_3[] = array('url_thumbs' => $url_galery.'clx-motorsport-lmp3-02_thumbs.jpg''url_large' => $url_galery.'clx-motorsport-lmp3-02_large.jpg','caption' => 'clx-motorsport-lmp2');
  287.         $images_3[] = array('url_thumbs' => $url_galery.'clx-motorsport-lmp2-01_thumbs.jpg''url_large' => $url_galery.'clx-motorsport-lmp2-01_large.jpg','caption' => 'clx-motorsport-lmp2');
  288.         $images_3[] = array('url_thumbs' => $url_galery.'clx-motorsport-lmp2-03_thumbs.jpg''url_large' => $url_galery.'clx-motorsport-lmp2-03_large.jpg','caption' => 'clx-motorsport-lmp2');
  289.         $images_3[] = array('url_thumbs' => $url_galery.'clx-motorsport-lmp2-04_thumbs.jpg''url_large' => $url_galery.'clx-motorsport-lmp2-04_large.jpg','caption' => 'clx-motorsport-lmp2');
  290.         $images_3[] = array('url_thumbs' => $url_galery.'clx-motorsport-lmp2-05_thumbs.jpg''url_large' => $url_galery.'clx-motorsport-lmp2-05_large.jpg','caption' => 'clx-motorsport-lmp2');
  291.         return $this->render('main/page-sport-auto.html.twig', [
  292.             'images' => $images,
  293.             'images_2' => $images_2,
  294.             'images_3' => $images_3
  295.         ]);
  296.     }
  297.     /**
  298.      * @Route("/cover-design-equipe-histoire", name="cover-design")
  299.      */
  300.     public function cover_design()
  301.     {
  302.         return $this->render('main/page-cover-design.html.twig', [
  303.         ]);
  304.     }
  305.     /**
  306.      * @Route("/contact", name="contact")
  307.      * @param Request $request
  308.      * @param MailerInterface $mailer
  309.      * @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response
  310.      * @throws \Symfony\Component\Mailer\Exception\TransportExceptionInterface
  311.      */
  312.     public function contact(Request $requestMailerInterface $mailer)
  313.     //public function contact(Request $request)
  314.     {
  315.         // CONTACT FORM ////////////////////////////////////
  316.         // creates a task object and initializes some data for this example
  317.         $form $this->createForm(ContactFormType::class);
  318.         $form->handleRequest($request); // on passe la requête au formulaire (affichera une entité si elle existe par exemple)
  319.         $message_is_sent false;
  320.         $recipient['email'] = 'contact@cover-design73.com'// destinataire du formulaire de contact
  321.         //$recipient['email'] = 'infos@monmoulin.fr'; // destinataire du formulaire de contact
  322.         $recipient_bcc['email'] = 'agencemonmoulin@gmail.com'// copie caché destinataire du formulaire de contact
  323.         // Si le formulaire est OK
  324.         if($form->isSubmitted() && $form->isValid())
  325.         {
  326.             // DATA du FORMULAIRE
  327.             $data $form->getData();
  328.             // Anti-spam comparaison > time created_form VS time submitted_form
  329.             $created_form $data['d_crea']; // anti-spam > input hidden > time de la création du formulaire
  330.             $submitted_form time();
  331.             $check_anti_spam $submitted_form $created_form;
  332.             if( $check_anti_spam ){
  333.                 // human
  334.                 // SEND EMAIL via MAILER ///////
  335.                 $message = (new TemplatedEmail())
  336.                     ->from('form@cover-design.fr')
  337.                     //->from('form@monmoulin.fr')
  338.                     ->to($recipient['email'])
  339.                     //->cc()
  340.                     ->bcc($recipient_bcc['email'])
  341.                     //->replyTo($replyto['email'])
  342.                     //->priority(Email::PRIORITY_HIGH)
  343.                     ->subject('Contact du site : cover-design.fr')
  344.                     ->htmlTemplate('emails/contact-form.html.twig')
  345.                     // pass variables (name => value) to the template
  346.                     ->context([
  347.                         'data' => $data,
  348.                     ])
  349.                 ;
  350.                 $mailer->send($message);
  351.                 // NOTIFICATION
  352.                 $this->addFlash('success','Votre message a bien été envoyé, Merci.');
  353.                 // ENLEVER LE FORMULAIRE
  354.                 $message_is_sent true;
  355.                 // REDIRECTION
  356.                 return $this->redirectToRoute('contact');
  357.             } else {
  358.                 // BOT?
  359.                 //echo "<br>Are You're a fuckin Bot ?";
  360.                 return $this->redirectToRoute('contact'); // tentative d'un bot
  361.             }
  362.             // REDIRECTION
  363.             return $this->redirectToRoute('contact');
  364.         }
  365.         // AFFICHAGE DU FORMULAIRE VIDE
  366.         return $this->render('main/page-contact.html.twig', [
  367.             'contactForm' => $form->createView(),
  368.             'message_is_sent' => $message_is_sent
  369.         ]);
  370.     }
  371.     /**
  372.      * Catalogue produits > listing complet
  373.      * @Route("/produits-entretien-chambery", name="produits-entretien")
  374.      * @param ProductRepository $productRepository
  375.      * @param Request $request
  376.      * @return \Symfony\Component\HttpFoundation\Response
  377.      */
  378.     public function produits_entretien(ProductRepository $productRepositoryRequest $request)
  379.     {
  380.         $all_products $productRepository->findAll(); // grâce au repo, on fait un select de toutes les entrées
  381.         $count_all_products count($all_products);
  382.         //dump($all_products);
  383.         // pagination
  384.         $products $this->paginator->paginate($all_products$request->query->getInt('page'1), 6);
  385.         // filtres : action & catégories
  386.         $filters $this->coverDesignHelper->getFilters();
  387.        //dump($filters);
  388.         return $this->render('main/page-produits-entretien.html.twig', [
  389.             'products' => $products,
  390.             'filters' => $filters,
  391.             'count_all_products' => $count_all_products,
  392.         ]);
  393.     }
  394.     /**
  395.      * Catalogue produits > filtrage produits: action et catégorie
  396.      * @Route("/produits-entretien-chambery/a/{a_slug}/c/{cat_slug}", name="produits-entretien-filters")
  397.      */
  398.     public function produits_entretien_filters(string $a_slugstring $cat_slugProductRepository $productRepositoryProductActionRepository $productActionRepositoryProductCategoryRepository $productCategoryRepositoryRequest $request)
  399.     {
  400.         // titre à ajouter au compteur, ex: 8 produits >>> dans "maintenir" et "tissu"
  401.         $filter_title['action'] = '';
  402.         $filter_title['category'] = '';
  403.         // get -> action
  404.         if($a_slug != 'all'){
  405.             $get_action $productActionRepository->findOneBy(['slug' => $a_slug]);
  406.             //dump($get_action);
  407.             $action['id'] = $get_action->getId();
  408.             $filter_title['action'] = $get_action->getName();
  409.         } else {
  410.             $action['id'] = 0;
  411.         }
  412.         // get -> category
  413.         if($cat_slug != 'all'){
  414.             $get_category $productCategoryRepository->findOneBy(['slug' => $cat_slug]);
  415.             $category['id'] = $get_category->getId();
  416.             $filter_title['category'] = $get_category->getName();
  417.         } else {
  418.             $category['id'] = 0;
  419.         }
  420.         $get_products $productRepository->findByActionAndOrCategory($action['id'], $category['id']);
  421.         // filtres : action & catégories
  422.         $filters $this->coverDesignHelper->getFilters();
  423.         // compteur
  424.         $count_all_products count($get_products);
  425.         // pagination
  426.         $products $this->paginator->paginate($get_products$request->query->getInt('page'1), 6);
  427.         return $this->render('main/page-produits-entretien.html.twig', [
  428.             'products' => $products,
  429.             'filters' => $filters,
  430.             'filter_title' => $filter_title,
  431.             'count_all_products' => $count_all_products,
  432.         ]);
  433.     }
  434.     /**
  435.      * Fiche produit
  436.      * @Route("/produits-entretien-chambery/p/{id}", name="produits-entretien-show")
  437.      * @param Product $product
  438.      * @param Request $request
  439.      * @return \Symfony\Component\HttpFoundation\Response
  440.      */
  441.     public function produits_entretien_show (Product $productRequest $request)
  442.     {
  443.         // go back (btn retour)
  444.         $go_back $this->getGoBackPage($request);
  445.         return $this->render('main/page-produits-entretien-show.html.twig', [
  446.             'product' => $product,
  447.             'go_back' => $go_back,
  448.         ]);
  449.     }
  450.     /////////////////////////////////////////////////////////////////////////////////////////
  451.     /////////////////////////////////////////////////////////////////////////////////////////
  452.     /////////////////////////////////////////////////////////////////////////////////////////
  453.     /**
  454.      * URL GO BACK (btn retour)
  455.      * - Mise en session de la page de retour (en cas d'actualisation de la page, same page)
  456.      *
  457.      * @param $request
  458.      * @return mixed|string
  459.      */
  460.     private function getGoBackPage ($request) {
  461.         $go_back '';
  462.         $referer filter_var($request->headers->get('referer'), FILTER_SANITIZE_URL); // securisation vulnérabilité XSS
  463.         if ($referer) {
  464.             $go_back $referer;
  465.             $this->session->set('go_back'$referer);
  466.         } else {
  467.             if ($this->session->get('go_back')) {
  468.                 $go_back $this->session->get('go_back');
  469.             }
  470.         }
  471.         //dump($go_back);
  472.         return $go_back;
  473.     }
  474. }