src/Controller/SupportController.php line 201
<?phpnamespace App\Controller;use Sav;use App\Services\DbMenu;use App\Services\DbPage;use App\Services\DbSupport;use App\Services\PdfHandler;use App\Services\MailerHandler;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 SupportController extends ConfigurateurController{function decodeURIComponent($str){$revert = array('!' => '%21', '*' => '%2A', "'" => '%27', '(' => '%28', ')' => '%29');return rawurldecode(strtr($str, $revert));}function savePDF($surname, $jobFunction, $email, $company, $address, $street, $cp, $town, $country, $telephone, $lignes, $lang, $pdfHandler) {//Set les données client pour le PDF$pdfCustomer['surname'] = $surname;$pdfCustomer['JobFunction'] = $jobFunction;$pdfCustomer['email'] = $email;$pdfCustomer['company'] = $company;$pdfCustomer['address'] = $address;$pdfCustomer['street'] = $street;$pdfCustomer['cp'] = $cp;$pdfCustomer['town'] = $town;$pdfCustomer['country'] = $country;$pdfCustomer['telephone'] = $telephone;foreach ($lignes as $id => $ligne) {if ($id != 0) {$infos = explode(';;', $ligne);if ($id == 1) {//Ajoute le code RMA au customer pour le pdf$pdfCustomer['rma'] = htmlentities($infos[0]);}//Génère les différent produits pour le PDF$pdfProducts[$id] = array(htmlentities($infos[1]),htmlentities($infos[9]),htmlentities($infos[2]),htmlentities($infos[3]),htmlentities($infos[4]),htmlentities($infos[5]),htmlentities($infos[6]),htmlentities($infos[7]),htmlentities($infos[8]));//END Génère les différent produits pour le PDF}}//END Set les données client pour le PDF//Génération du PDF// $pdf = generatePDF($pdfCustomer, $pdfProducts, $lang);$pdf = $pdfHandler->generatePdf('pdf/sav/sav.html.twig', [], null);return $pdf;}#[Route(path: ['fr' => '/{_locale}/definitions', 'en' => '/{_locale}/definitions'],name: 'definitionmenu',requirements: ['_locale' => 'en|fr',],priority: 2)]public function definitionmenu(Request $request, DbMenu $dbMenu): Response{if ($request->getLocale() == 'fr') {$link = '/en/definitions';$breadcrumb = array(['name' => 'Définitions', 'link_rewrite' => 'definitions']);} else {$link = '/fr/definitions';$breadcrumb = array(['name' => 'Definitions', 'link_rewrite' => 'definitions']);}$lienDb = "definitions";$parent = $dbMenu->getContent($lienDb, $request->getLocale());$menus = $dbMenu->getMenus($parent[0]['id_cms_category'], $request->getLocale());$menusCms = $dbMenu->getMenusCms($parent[0]['id_cms_category'], $request->getLocale());return $this->render('apropos/aproposmenu.html.twig', ['link' => $link, 'breadcrumb' => $breadcrumb, 'menus' => $menus, 'menusCms' => $menusCms]);}#[Route(path: ['fr' => '/{_locale}/definitions/{link}', 'en' => '/{_locale}/definitions/{link}'],name: 'definitions',requirements: ['_locale' => 'en|fr',])]public function definitions(Request $request, DbSupport $dbSupport, $link = null): Response{$contents = $dbSupport->getContent($link, $request->getLocale());$breadcrumb = array(['name' => 'Definitions', 'link_rewrite' => 'definitions'], ['name' => $contents[0]["name"], 'link_rewrite' => $link]);$linkRewrite = $dbSupport->getLink($contents[0]['id_cms_category'], $request);return $this->render('support/definitions.html.twig', ['link' => $linkRewrite, 'breadcrumb' => $breadcrumb, 'menusCms' => $contents]);}#[Route(path: ['fr' => '/{_locale}/definitions/certifications/{link}', 'en' => '/{_locale}/definitions/certifications/{link}'],name: 'certifications',requirements: ['_locale' => 'en|fr',])]#[Route(path: ['fr' => '/{_locale}/definitions/caracteristiques-techniques/{link}', 'en' => '/{_locale}/definitions/technical-features/{link}'],name: 'techniques',requirements: ['_locale' => 'en|fr',])]#[Route(path: ['fr' => '/{_locale}/options-capteurs-de-force/{link}', 'en' => '/{_locale}/load-cells-options/{link}'],name: 'optionscapteurslien',requirements: ['_locale' => 'en|fr',])]public function certifications(Request $request, DbPage $dbPage, $link = null): Response{$contents = $dbPage->getContent($link, $request->getLocale());$link = $dbPage->getLink($contents[0]['id_cms'], $request);$breadcrumb = $dbPage->getBreadcrumb($request);return $this->render('apropos/apropos.html.twig', ['contents' => $contents, 'link' => $link, 'breadcrumb' => $breadcrumb, 'definition' => true]);}#[Route(path: ['fr' => '/{_locale}/options-capteurs-de-force', 'en' => '/{_locale}/load-cells-options'],name: 'optionscapteurs',requirements: ['_locale' => 'en|fr',],priority: 2)]public function optionscapteurs(Request $request, DbMenu $dbMenu): Response{if ($request->getLocale() == 'fr') {$link = '/en/load-cells-options';$lienDb = "options-capteurs-de-force";$breadcrumb = array(['name' => 'Options', 'link_rewrite' => $lienDb]);} else {$link = '/fr/options-capteurs-de-force';$lienDb = "load-cells-options";$breadcrumb = array(['name' => 'Options', 'link_rewrite' => $lienDb]);}$parent = $dbMenu->getContent($lienDb, $request->getLocale());$menus = $dbMenu->getMenus($parent[0]['id_cms_category'], $request->getLocale());$menusCms = $dbMenu->getMenusCms($parent[0]['id_cms_category'], $request->getLocale());return $this->render('apropos/aproposmenu.html.twig', ['link' => $link, 'breadcrumb' => $breadcrumb, 'menus' => $menus, 'menusCms' => $menusCms]);}#[Route(path: ['fr' => '/{_locale}/faqs', 'en' => '/{_locale}/faqs'],name: 'faq',requirements: ['_locale' => 'en|fr',],priority: 2)]public function faq(Request $request, DbSupport $dbSupport): Response{if ($request->getLocale() == 'fr') {$link = '/en/faqs';} else {$link = '/fr/faqs';}$breadcrumb = array(['name' => 'FAQ', 'link_rewrite' => 'faqs']);$categories = $dbSupport->getFaqCategory($request);$search = $request->query->get('search');$questions = $dbSupport->getFaq($request, null, $search);return $this->render('support/faq.html.twig', ['link' => $link, 'breadcrumb' => $breadcrumb, 'questions' => $questions, 'categories' => $categories]);}#[Route(path: ['fr' => '/{_locale}/faqs/{category}/{linkRewrite}', 'en' => '/{_locale}/faqs/{category}/{linkRewrite}'],name: 'faqContent',requirements: ['_locale' => 'en|fr',],priority: 2)]public function faqContent(Request $request, DbSupport $dbSupport, $category = null, $linkRewrite = null): Response{$altLang = $request->getLocale() == "fr" ? "en" : "fr";$breadcrumb = array(['name' => 'FAQ', 'link_rewrite' => 'faqs'], ['name' => ucfirst($category), 'link_rewrite' => 'faqs']);$contents = $dbSupport->getFaq($request, $linkRewrite);$link = $dbSupport->getLinkFaq($request, $contents[0]["id_gomakoil_faq"], $category);foreach ($contents as $k => $content) {$contents[$k]["meta_title"] = strip_tags($content["question"]);}return $this->render('support/faqcontent.html.twig', ['link' => $link, 'breadcrumb' => $breadcrumb, 'contents' => $contents]);}#[Route(path: ['fr' => '/{_locale}/sav', 'en' => '/{_locale}/rma'],name: 'sav',requirements: ['_locale' => 'en|fr',],priority: 2)]public function sav(Request $request, DbSupport $dbSupport): Response{if ($request->getLocale() == 'fr') {$link = '/en/rma';$breadcrumb = array(['name' => 'Requête SAV', 'link_rewrite' => 'sav']);} else {$link = '/fr/sav';$breadcrumb = array(['name' => 'RMA Request', 'link_rewrite' => 'rma']);}// $categories = $dbSupport->getFaqCategory($request);// $search = $request->query->get('search');// $questions = $dbSupport->getFaq($request, null, $search);return $this->render('support/sav.html.twig', ['link' => $link, 'breadcrumb' => $breadcrumb]);}#[Route(path: ['fr' => '/rma', 'en' => '/rma'],name: 'rma_file',requirements: ['_locale' => 'en|fr',],priority: 2)]public function rma_file() : Response{$monfichier = fopen($this->getParameter('kernel.project_dir') . '/public/rma.txt', 'r+');$rma = fgets($monfichier);$yearInFile = substr($rma, 0, 4);$rma = str_replace($yearInFile, date("Y"), $rma);$rma += 1;fseek($monfichier, 0);fputs($monfichier, $rma);//fclose($rma);return new JsonResponse($rma);}#[Route(path: ['fr' => '/{_locale}/send-sav', 'en' => '/{_locale}/send-rma'],name: 'send_sav',requirements: ['_locale' => 'en|fr',],priority: 2)]public function send_sav(Request $request, PdfHandler $pdfHandler, MailerHandler $mailer): Response{$content = $this->getJsonContent($request);$trimedEmail = trim($content['email']);if (isset($trimedEmail) && !empty($trimedEmail)) {// Récupérer les infos $content$surname = htmlspecialchars(decodeURIComponent($content['surname']));$jobFunction = htmlspecialchars(decodeURIComponent($content['JobFunction']));$email = htmlspecialchars(decodeURIComponent($content['email']));$company = htmlspecialchars(decodeURIComponent($content['company']));$address = htmlspecialchars(decodeURIComponent($content['address']));$telephone = htmlspecialchars(decodeURIComponent($content['telephone']));$sendingBackDate = htmlspecialchars(decodeURIComponent($content['sendingBackDate']));$langue = htmlspecialchars(decodeURIComponent($content['language']));$street = htmlspecialchars(decodeURIComponent($content['street']));$cp = htmlspecialchars(decodeURIComponent($content['cp']));$town = htmlspecialchars(decodeURIComponent($content['town']));$country = htmlspecialchars(decodeURIComponent($content['country']));if ($langue == 0) {$langue = 'English';} else if ($langue == 1) {$langue = 'Français';} else if ($langue == 2) {$langue = 'Deutsch';} else if ($langue == 3) {$langue = 'Nederlands';} else if ($langue == 4) {$langue = 'Español';} else if ($langue == 5) {$langue = 'Italiano';} else if ($langue == 6) {$langue = 'Magyar';} else if ($langue == 7) {$langue = 'Hrvatski';} else if ($langue == 8) {$langue = 'Ceský';} else if ($langue == 9) {$langue = 'Polski';}// Récupéré la langue (français ou anglais)if (isset($content['site_lang']) && $content['site_lang'] == 'fr') {$lang = 1;$savTitle = '#SAV : ';$typeProduit = 'Type du Produit : ';$nserie = 'Numero de Serie : ';$ncommande = 'Numero de Commande SENSY : ';$remarque = 'Remarque : ';$motifrenvoi = 'Motif du renvoi : ';$options = 'Options : ';$courbeEtalonnage = "Courbe d'étalonnage : ";$nouveauCable = 'Nouveau câble : ';$nouveauConnecteur = 'Nouveau connecteur : ';} else {$lang = 2;$savTitle = '#RMA : ';$typeProduit = 'Model : ';$nserie = 'Serial number : ';$ncommande = 'Order number : ';$remarque = 'Remark / Fault description : ';$motifrenvoi = 'Reason for return : ';$courbeEtalonnage = 'Calibration certificate : ';$nouveauCable = 'New cable : ';$nouveauConnecteur = 'New connector : ';}$tab = htmlspecialchars(decodeURIComponent(urldecode($content['tab'])));$lignes = explode('HYHY', $tab);// $pdf = $this->savePDF($surname, $jobFunction, $email, $company, $address, $street, $cp, $town, $country, $telephone, $lignes, $lang, $pdfHandler);$pdf = null;$success = sendMail($lang, $surname, $jobFunction, $email, $company, $address, $langue, $telephone, $sendingBackDate, $lignes, $savTitle, $typeProduit, $nserie, $ncommande, $remarque, $motifrenvoi, $courbeEtalonnage, $nouveauCable, $nouveauConnecteur, $pdf, $mailer);}return new JsonResponse();}}