src/Controller/MainController.php line 36
<?phpnamespace App\Controller;use DateTime;use App\Services\DbBlog;use App\Services\DbPage;use App\Services\DbProduct;use App\Services\MailerHandler;use Symfony\Component\Mime\Email;use Symfony\Component\Mailer\Mailer;use Symfony\Component\Mailer\Transport;use Doctrine\ORM\EntityManagerInterface;use App\Controller\ConfigurateurController;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\Routing\Annotation\Route;use Symfony\Component\HttpFoundation\JsonResponse;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;class MainController extends ConfigurateurController{#[Route('/')]public function main(): Response{return $this->redirectToRoute('accueil', [], 301);}#[Route(path: ['fr' => '/{_locale}/', 'en' => '/{_locale}/'],name: 'accueil',requirements: ['_locale' => 'en|fr',])]public function accueil(Request $request, DbBlog $dbBlog, DbProduct $dbProduct): Response{$altLang = $request->getLocale() == "fr" ? "/en" : "/fr";$arrayCat = array(12 => 19,13 => 20,14 => 21,15 => 22,16 => 23,17 => 24,18 => 25);$menus = $dbBlog->getMenu($request->getLocale());$cards = $dbBlog->getCardAccueil($request->getLocale());$overviewCategories = $dbProduct->getCategoriesOverview($request->getLocale());$smCategory = $arrayCat[$overviewCategories[0]["id_category"]];$products = $dbProduct->getProductsOverview($request->getLocale(), $overviewCategories[0]["id_category"]);$smProducts = $dbProduct->getSmProductsOverview($request->getLocale(), $smCategory);return $this->render('accueil/accueil.html.twig', [ 'link' => $altLang, 'cards' => $cards, 'products' => $products, 'overviewCategories' => $overviewCategories, 'smProducts' => $smProducts]);}#[Route(path: ['fr' => '/{_locale}/overview', 'en' => '/{_locale}/overview'],name: 'overview_update',requirements: ['_locale' => 'en|fr',])]public function overview_update(Request $request, DbBlog $dbBlog, DbProduct $dbProduct): Response{$content = $this->getJsonContent($request);$category = $content["category"];$link = $content["link"];$arrayCat = array(12 => 19,13 => 20,14 => 21,15 => 22,16 => 23,17 => 24,18 => 25);$data = $this->prepareJsonResponse($content);$smCategory = $arrayCat[$category];$smProducts = $dbProduct->getSmProductsOverview($request->getLocale(), $smCategory);$products = $category == 18 ? $dbProduct->getProductsElectro($request->getLocale(), $category) : $dbProduct->getProductsOverview($request->getLocale(), $category);$data["overview"] = $this->renderView('accueil/overview.html.twig', [ 'products' => $products, 'smProducts' => $smProducts]);return new JsonResponse($data);}#[Route(path: ['fr' => '/{_locale}/{link}', 'en' => '/{_locale}/{link}'],name: 'accueil_pages',requirements: ['_locale' => 'en|fr',])]#[Route(path: ['fr' => '/{_locale}/capteurs-de-force-sur-mesure/{link}', 'en' => '/{_locale}/custom-load-cells/{link}'],name: 'accueil_souspagescfm',requirements: ['_locale' => 'en|fr',])]#[Route(path: ['fr' => '/{_locale}/axes-dynamometriques/{link}', 'en' => '/{_locale}/load-pins/{link}'],name: 'accueil_souspagesad',requirements: ['_locale' => 'en|fr',])]#[Route(path: ['fr' => '/{_locale}/capteurs-de-force-etalon-iso376/{link}', 'en' => '/{_locale}/standard-reference-force-transducers/{link}'],name: 'accueil_souspagescfe',requirements: ['_locale' => 'en|fr',],)]#[Route(path: ['fr' => '/{_locale}/arck-sensor/{link}', 'en' => '/{_locale}/arck-sensor/{link}'],name: 'accueil_souspagesas',requirements: ['_locale' => 'en|fr',])]public function accueil_pages(Request $request, DbPage $dbPage, $link = null, $categorie = null): Response{$contents = $dbPage->getContent($link, $request->getLocale());$link = $dbPage->getLink($contents[0]['id_cms'], $request);$breadcrumb = [];return $this->render('apropos/apropos.html.twig', ['contents' => $contents, 'link' => $link, 'breadcrumb' => $breadcrumb]);}#[Route(path: ['fr' => '/{_locale}/nous-contacter', 'en' => '/{_locale}/contact-us'],name: 'contact',methods: ['GET', 'POST'],requirements: ['_locale' => 'en|fr',],priority: 2)]public function contact(Request $request, DbPage $dbPage, MailerHandler $mailer, EntityManagerInterface $entityManager): Response{$langageArray = ["English", "Français", "Deutsch", "Nederlands", "Español", "Italiano", "Magyar", "Hrvatski", "Ceský", "Polski"];if ($request->getLocale() == 'fr') {$link = '/en/contact-us';$breadcrumb = array(['name' => 'Contact', 'link_rewrite' => 'nous-contacter']);} else {$link = '/fr/nous-contacter';$breadcrumb = array(['name' => 'Contact', 'link_rewrite' => 'contact-us']);}if($request->isMethod('POST') && $_POST['submitMessage']) {$content = [];$content['societe'] = $_POST['company'];$content['nom'] = $_POST['surname'];$content['prenom'] = $_POST['firstname'];$content['fonction'] = $_POST['function'];$content['email'] = $_POST['from'];$content['telephone'] = $_POST['telephone'];$content['fax'] = "";$content['activite'] = $_POST['activities'] ?? null;$content['site'] = $_POST['website'];$content['pays'] = $_POST['country'];$content['langage'] = $langageArray[$_POST['language']];$content['message'] = $_POST['message'];$content['attachment'] = $_FILES['fileUpload']['name'];if (isset($_POST['wantnewsletter']) && $_POST['wantnewsletter'] == 'true') {$date = new DateTime();$date = $date->format('Y-m-d H:i:s');$ip = $_SERVER['HTTP_X_FORWARDED_FOR'] ?? $_SERVER['REMOTE_ADDR'];$email = $content['email'];$sql = "INSERT INTO pre2398_newsletter (id_shop, id_shop_group, email, newsletter_date_add, ip_registration_newsletter, http_referer, active)VALUES ('1', '1', '$email', '$date', '$ip', null, '1')";$query = $entityManager->getConnection()->prepare($sql);$result = $query->executeQuery();}$to = ["jm@adevo.be", "jeremymortier@hotmail.com"];$from = "noreply@sensy.com";$subject = "Message de la part d'un client de SENSY";if (isset($_FILES['fileUpload']) && $_FILES['fileUpload']['error'] == UPLOAD_ERR_OK) {$cheminUpload = 'upload/';$cheminFichier = $cheminUpload . basename($_FILES['fileUpload']['name']);if (move_uploaded_file($_FILES['fileUpload']['tmp_name'], $cheminFichier)) {$mailer->sendWithAttachment($to, $from, $subject, $cheminFichier, 'mail/contact/contact.html.twig', ['content' => $content]);}} else {$mailer->send($to, $from, $subject, 'mail/contact/contact.html.twig', ['content' => $content]);}return $this->redirectToRoute('accueil_pages', [ 'link'=> 'nous-contacter-remerciement' ]);}return $this->render('contact/contact.html.twig', ['link' => $link, 'breadcrumb' => $breadcrumb]);}#[Route(path: ['fr' => '/{_locale}/newsLetter/register', 'en' => '/{_locale}/newsLetter/register'],name: 'newsletter_register',requirements: ['_locale' => 'en|fr',])]public function newsletter_register(Request $request, EntityManagerInterface $entityManager): Response{if ($this->isAjaxCall($request)) {$content = $this->getJsonContent($request);$email = $content["email"];$date = new DateTime();$date = $date->format('Y-m-d H:i:s');$ip = $_SERVER['HTTP_X_FORWARDED_FOR'] ?? $_SERVER['REMOTE_ADDR'];$sql = "INSERT INTO pre2398_newsletter (id_shop, id_shop_group, email, newsletter_date_add, ip_registration_newsletter, http_referer, active)VALUES ('1', '1', '$email', '$date', '$ip', null, '1')";$query = $entityManager->getConnection()->prepare($sql);$result = $query->executeQuery();return new JsonResponse();}}}?>