src/Controller/MainController.php line 127
<?php
namespace 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();
}
}
}
?>