src/Controller/MainController.php line 127

  1. <?php
  2. namespace App\Controller;
  3. use DateTime;
  4. use App\Services\DbBlog;
  5. use App\Services\DbPage;
  6. use App\Services\DbProduct;
  7. use App\Services\MailerHandler;
  8. use Symfony\Component\Mime\Email;
  9. use Symfony\Component\Mailer\Mailer;
  10. use Symfony\Component\Mailer\Transport;
  11. use Doctrine\ORM\EntityManagerInterface;
  12. use App\Controller\ConfigurateurController;
  13. use Symfony\Component\HttpFoundation\Request;
  14. use Symfony\Component\HttpFoundation\Response;
  15. use Symfony\Component\Routing\Annotation\Route;
  16. use Symfony\Component\HttpFoundation\JsonResponse;
  17. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  18. class MainController extends ConfigurateurController
  19. {
  20.     #[Route('/')]
  21.     public function main(): Response
  22.     {
  23.         return $this->redirectToRoute('accueil', [], 301);
  24.     }
  25.     #[Route(
  26.         path: ['fr' => '/{_locale}/''en' => '/{_locale}/'], 
  27.         name'accueil'
  28.         requirements: [
  29.             '_locale' => 'en|fr',
  30.         ]
  31.     )]
  32.     public function accueil(Request $requestDbBlog $dbBlogDbProduct $dbProduct): Response
  33.     {
  34.         $altLang $request->getLocale() == "fr" "/en" "/fr";
  35.         $arrayCat = array(
  36.             12 => 19,
  37.             13 => 20,
  38.             14 => 21,
  39.             15 => 22,
  40.             16 => 23,
  41.             17 => 24,
  42.             18 => 25
  43.         );
  44.         $menus $dbBlog->getMenu($request->getLocale());
  45.         $cards $dbBlog->getCardAccueil($request->getLocale());
  46.         $overviewCategories $dbProduct->getCategoriesOverview($request->getLocale());
  47.         $smCategory $arrayCat[$overviewCategories[0]["id_category"]];
  48.         $products $dbProduct->getProductsOverview($request->getLocale(), $overviewCategories[0]["id_category"]);
  49.         $smProducts $dbProduct->getSmProductsOverview($request->getLocale(), $smCategory);
  50.         return $this->render('accueil/accueil.html.twig', [ 'link' => $altLang'cards' => $cards'products' => $products'overviewCategories' => $overviewCategories'smProducts' => $smProducts]);
  51.     }
  52.     #[Route(
  53.         path: ['fr' => '/{_locale}/overview''en' => '/{_locale}/overview'], 
  54.         name'overview_update'
  55.         requirements: [
  56.             '_locale' => 'en|fr',
  57.         ]
  58.     )]
  59.     public function overview_update(Request $requestDbBlog $dbBlogDbProduct $dbProduct): Response
  60.     {
  61.         $content $this->getJsonContent($request);
  62.         $category $content["category"];
  63.         $link $content["link"];
  64.         $arrayCat = array(
  65.             12 => 19,
  66.             13 => 20,
  67.             14 => 21,
  68.             15 => 22,
  69.             16 => 23,
  70.             17 => 24,
  71.             18 => 25
  72.         );
  73.         $data $this->prepareJsonResponse($content);
  74.         $smCategory $arrayCat[$category];
  75.         $smProducts $dbProduct->getSmProductsOverview($request->getLocale(), $smCategory);
  76.         $products $category == 18 $dbProduct->getProductsElectro($request->getLocale(), $category) : $dbProduct->getProductsOverview($request->getLocale(), $category);
  77.         $data["overview"] = $this->renderView('accueil/overview.html.twig', [ 'products' => $products'smProducts' => $smProducts]);
  78.         return new JsonResponse($data);
  79.     }
  80.     #[Route(
  81.         path: ['fr' => '/{_locale}/{link}''en' => '/{_locale}/{link}'], 
  82.         name'accueil_pages'
  83.         requirements: [
  84.             '_locale' => 'en|fr',
  85.         ]
  86.     )]
  87.     #[Route(
  88.         path: ['fr' => '/{_locale}/capteurs-de-force-sur-mesure/{link}''en' => '/{_locale}/custom-load-cells/{link}'], 
  89.         name'accueil_souspagescfm'
  90.         requirements: [
  91.             '_locale' => 'en|fr',
  92.         ]
  93.     )]
  94.     #[Route(
  95.         path: ['fr' => '/{_locale}/axes-dynamometriques/{link}''en' => '/{_locale}/load-pins/{link}'], 
  96.         name'accueil_souspagesad'
  97.         requirements: [
  98.             '_locale' => 'en|fr',
  99.         ]
  100.     )]
  101.     #[Route(
  102.         path: ['fr' => '/{_locale}/capteurs-de-force-etalon-iso376/{link}''en' => '/{_locale}/standard-reference-force-transducers/{link}'], 
  103.         name'accueil_souspagescfe'
  104.         requirements: [
  105.             '_locale' => 'en|fr',
  106.         ],
  107.     )]
  108.     #[Route(
  109.         path: ['fr' => '/{_locale}/arck-sensor/{link}''en' => '/{_locale}/arck-sensor/{link}'], 
  110.         name'accueil_souspagesas'
  111.         requirements: [
  112.             '_locale' => 'en|fr',
  113.         ]
  114.     )]
  115.     public function accueil_pages(Request $requestDbPage $dbPage$link null$categorie null): Response
  116.     {
  117.         $contents $dbPage->getContent($link$request->getLocale());
  118.         $link $dbPage->getLink($contents[0]['id_cms'], $request);
  119.         $breadcrumb = [];
  120.         
  121.         return $this->render('apropos/apropos.html.twig', ['contents' => $contents'link' => $link'breadcrumb' => $breadcrumb]);
  122.     }
  123.     #[Route(
  124.         path: ['fr' => '/{_locale}/nous-contacter''en' => '/{_locale}/contact-us'], 
  125.         name'contact',
  126.         methods: ['GET''POST'],
  127.         requirements: [
  128.             '_locale' => 'en|fr',
  129.         ],
  130.         priority2
  131.     )]
  132.     public function contact(Request $requestDbPage $dbPageMailerHandler $mailerEntityManagerInterface $entityManager): Response
  133.     {
  134.         $langageArray = ["English""Français""Deutsch""Nederlands""Español""Italiano""Magyar""Hrvatski""Ceský""Polski"];
  135.         if ($request->getLocale() == 'fr') {
  136.             $link '/en/contact-us';
  137.             $breadcrumb = array(['name' => 'Contact''link_rewrite' => 'nous-contacter']);
  138.         } else {
  139.             $link '/fr/nous-contacter';
  140.             $breadcrumb = array(['name' => 'Contact''link_rewrite' => 'contact-us']);
  141.         } 
  142.         if($request->isMethod('POST') && $_POST['submitMessage']) {
  143.             $content = [];
  144.             $content['societe'] = $_POST['company'];
  145.             $content['nom'] = $_POST['surname'];
  146.             $content['prenom'] = $_POST['firstname'];
  147.             $content['fonction'] = $_POST['function'];
  148.             $content['email'] = $_POST['from'];
  149.             $content['telephone'] = $_POST['telephone'];
  150.             $content['fax'] = "";
  151.             $content['activite'] = $_POST['activities'] ?? null;
  152.             $content['site'] = $_POST['website'];
  153.             $content['pays'] = $_POST['country'];
  154.             $content['langage'] = $langageArray[$_POST['language']];
  155.             $content['message'] = $_POST['message'];
  156.             $content['attachment'] = $_FILES['fileUpload']['name'];
  157.             if (isset($_POST['wantnewsletter']) && $_POST['wantnewsletter'] == 'true') {
  158.                 $date = new DateTime();
  159.                 $date $date->format('Y-m-d H:i:s');
  160.                 $ip $_SERVER['HTTP_X_FORWARDED_FOR'] ?? $_SERVER['REMOTE_ADDR'];
  161.                 $email $content['email'];
  162.                 $sql "INSERT INTO pre2398_newsletter (id_shop, id_shop_group, email, newsletter_date_add, ip_registration_newsletter, http_referer, active)
  163.                         VALUES ('1', '1', '$email', '$date', '$ip', null, '1')";
  164.                 $query $entityManager->getConnection()->prepare($sql);
  165.                 $result $query->executeQuery();
  166.             }
  167.             $to = ["jm@adevo.be""jeremymortier@hotmail.com"];
  168.             $from "noreply@sensy.com";
  169.             $subject "Message de la part d'un client de SENSY";
  170.             if (isset($_FILES['fileUpload']) && $_FILES['fileUpload']['error'] == UPLOAD_ERR_OK) {
  171.                 $cheminUpload 'upload/';
  172.                 $cheminFichier $cheminUpload basename($_FILES['fileUpload']['name']);
  173.                 
  174.                 if (move_uploaded_file($_FILES['fileUpload']['tmp_name'], $cheminFichier)) {
  175.                     $mailer->sendWithAttachment($to$from$subject$cheminFichier'mail/contact/contact.html.twig', ['content' =>  $content]);
  176.                 }
  177.             } else {
  178.                 $mailer->send($to$from$subject'mail/contact/contact.html.twig', ['content' =>  $content]);
  179.             }
  180.             return $this->redirectToRoute('accueil_pages', [ 'link'=> 'nous-contacter-remerciement' ]);
  181.         }
  182.         
  183.         return $this->render('contact/contact.html.twig', ['link' => $link'breadcrumb' => $breadcrumb]);
  184.     }
  185.     #[Route(
  186.         path: ['fr' => '/{_locale}/newsLetter/register''en' => '/{_locale}/newsLetter/register'], 
  187.         name'newsletter_register'
  188.         requirements: [
  189.             '_locale' => 'en|fr',
  190.         ]
  191.     )]
  192.     public function newsletter_register(Request $requestEntityManagerInterface $entityManager): Response
  193.     {
  194.         if ($this->isAjaxCall($request)) {
  195.             $content $this->getJsonContent($request);
  196.             $email $content["email"];
  197.             $date = new DateTime();
  198.             $date $date->format('Y-m-d H:i:s');
  199.             $ip $_SERVER['HTTP_X_FORWARDED_FOR'] ?? $_SERVER['REMOTE_ADDR'];
  200.             $sql "INSERT INTO pre2398_newsletter (id_shop, id_shop_group, email, newsletter_date_add, ip_registration_newsletter, http_referer, active)
  201.                     VALUES ('1', '1', '$email', '$date', '$ip', null, '1')";
  202.             $query $entityManager->getConnection()->prepare($sql);
  203.             $result $query->executeQuery();
  204.             return new JsonResponse();
  205.         }
  206.     }
  207. }
  208. ?>