src/Controller/DefautController.php line 151
<?phpnamespace App\Controller;use App\Entity\Contact;use App\Entity\Notice;use App\Entity\Service;use App\Entity\Setting;use App\Entity\Subscription;use App\Form\ContactType;use App\Service\MailerService;use App\Twig\Extension\AppExtension;use Doctrine\ORM\EntityManagerInterface;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\HttpFoundation\BinaryFileResponse;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpFoundation\RequestStack;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\HttpFoundation\Session\SessionInterface;use Symfony\Component\HttpKernel\EventListener\AbstractSessionListener;use Symfony\Component\Routing\Annotation\Route;use Symfony\Component\Routing\Generator\UrlGeneratorInterface;use Symfony\Contracts\Translation\TranslatorInterface;use Twig\Environment;class DefautController extends AbstractController{private $em;private $mailerService;private $requestStack;private $twig;public function __construct(EntityManagerInterface $em, MailerService $mailerService, private UrlGeneratorInterface $router,RequestStack $requestStack,Environment $twig){$this->em = $em;$this->mailerService = $mailerService;$this->requestStack=$requestStack;$this->twig=$twig;}#[Route('/', name: 'app_defaut')]public function index(SessionInterface $session){$response = new Response(); // A supprimer apres fin dev$services = $this->em->getRepository(Service::class)->findBy([], ['id' => "ASC"]);$cartProduct = $this->twig->getExtension(AppExtension::class)->getCartProduct($session); // Appelez la fonction via l'extension Twig$setting = $this->em->getRepository(Setting::class)->findOneBy([], ['id' => 'DESC']);$response->headers->set(AbstractSessionListener::NO_AUTO_CACHE_CONTROL_HEADER, 'true'); // A supprimer apres fin devreturn $this->render('defaut/index.html.twig', ['services' => $services,'cartProduct' => $cartProduct,'setting'=> $setting,]);}#[Route('/service/{slug}', name: 'app_get_service')]public function getServiceBySlug(SessionInterface $session, string $slug){$cleanSlug = $this->removeDashAndDigitsFromEnd($slug); // Appel de la fonction removeDashAndDigitsFromEnd$response = new Response(); // A supprimer apres fin dev$services = $this->em->getRepository(Service::class)->findBy([], ['id' => "ASC"]);$service_category = $this->em->getRepository(Service::class)->findBy(['social_network' => $slug]);$cartProduct = $this->twig->getExtension(AppExtension::class)->getCartProduct($session); // Appelez la fonction via l'extension Twig$response->headers->set(AbstractSessionListener::NO_AUTO_CACHE_CONTROL_HEADER, 'true'); // A supprimer apres fin devreturn $this->render('defaut/categories.html.twig', ['categorie' => $slug,'services' => $services,'cartProduct' => $cartProduct,'service_category' => $service_category,]);}#[Route('/category/{service}/{slug}', name: 'app_get_category')]public function getCategoryBySlug(SessionInterface $session, string $service, string $slug){$response = new Response(); // A supprimer apres fin dev$categories = $this->em->getRepository(Service::class)->findBy(['social_network' => $service, 'category' => $slug]);$cartProduct = $this->twig->getExtension(AppExtension::class)->getCartProduct($session); // Appelez la fonction via l'extension Twig$response->headers->set(AbstractSessionListener::NO_AUTO_CACHE_CONTROL_HEADER, 'true'); // A supprimer apres fin devreturn $this->render('defaut/products.html.twig', ['service' => $service,'category' => $slug,'categories' => $categories,'cartProduct' => $cartProduct,]);}#[Route('/product/{service}/{category}/{slug}', name: 'app_get_product')]public function getProductBySlug(SessionInterface $session, string $slug,string $category,string $service,Request $request){$response = new Response(); // A supprimer apres fin dev$detail_product = $this->em->getRepository(Service::class)->findBy(['slug' => $service, 'slug_category' => $category,'slug_quality' => $slug,'']);$cartProduct = $this->twig->getExtension(AppExtension::class)->getCartProduct($session); // Appelez la fonction via l'extension Twig$response->headers->set(AbstractSessionListener::NO_AUTO_CACHE_CONTROL_HEADER, 'true'); // A supprimer apres fin devreturn $this->render('defaut/details_product.html.twig', ['products' => $detail_product,'cartProduct' => $cartProduct,]);}#[Route('/access_denied', name: 'app_access_denied')]public function accessDenied(SessionInterface $session){$response = new Response(); // A supprimer apres fin dev$services = $this->em->getRepository(Service::class)->findBy([], ['id' => "ASC"]);$cartProduct = $this->twig->getExtension(AppExtension::class)->getCartProduct($session); // Appelez la fonction via l'extension Twig$response->headers->set(AbstractSessionListener::NO_AUTO_CACHE_CONTROL_HEADER, 'true'); // A supprimer apres fin devreturn $this->render('pages/access-denied.html.twig', ['services' => $services,'cartProduct' => $cartProduct,]);}#[Route('/socialnetworks', name: 'app_get_socialnetworks')]public function getSocialnetworks(SessionInterface $session){$response = new Response(); // A supprimer apres fin dev$services = $this->em->getRepository(Service::class)->findBy([], ['id' => "ASC"]);$cartProduct = $this->twig->getExtension(AppExtension::class)->getCartProduct($session); // Appelez la fonction via l'extension Twig$response->headers->set(AbstractSessionListener::NO_AUTO_CACHE_CONTROL_HEADER, 'true'); // A supprimer apres fin devreturn $this->render('defaut/services.html.twig', ['services' => $services,'cartProduct' => $cartProduct,'service_category' => $services,]);}#[Route('/avis', name: 'app_get_notice')]public function getNotice(SessionInterface $session){$response = new Response(); // A supprimer apres fin dev$services = $this->em->getRepository(Service::class)->findBy([], ['id' => "ASC"]);$cartProduct = $this->twig->getExtension(AppExtension::class)->getCartProduct($session); // Appelez la fonction via l'extension Twig$notices = $this->em->getRepository(Notice::class)->findBy([], ['id' => "ASC"]);$response->headers->set(AbstractSessionListener::NO_AUTO_CACHE_CONTROL_HEADER, 'true'); // A supprimer apres fin devreturn $this->render('defaut/notice.html.twig', ['services' => $services,'cartProduct' => $cartProduct,'service_category' => $services,'notices' => $notices,]);}#[Route('/contact', name: 'app_get_contact')]public function contact(Request $requete, SessionInterface $session, TranslatorInterface $translator){$erreurs = false;$contact = new Contact();$formulaire = $this->createForm(ContactType::class);$formulaire->handleRequest($requete);if ($formulaire->isSubmitted()) {//&& $formulaire->isValid()) {if ($formulaire->isValid()) {$token = $formulaire->getData();$ch = curl_init();curl_setopt($ch, CURLOPT_URL, "https://www.google.com/recaptcha/api/siteverify");curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array('secret' => '6LcE0wgkAAAAAFszLC6GFSE0lKh-g1zeDct-pkvT', 'response' => $token)));curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$response = curl_exec($ch);curl_close($ch);$arrResponse = json_decode($response, true);$contact = $formulaire->getData();$this->em->persist($contact);$this->em->flush();if ($this->mailerService->envoyerContact($contact) !== 0) {$this->mailerService->envoyerAccuse($contact);$this->addFlash('success', 'Demande envoyée');} else {$this->addFlash('danger', "Erreur lors de l'envoie de lors de l'envoi de la demande");}return $this->redirect($this->router->generate('app_get_contact'));}}$response = new Response(); // A supprimer apres fin dev$services = $this->em->getRepository(Service::class)->findBy([], ['id' => "ASC"]);$cartProduct = $this->twig->getExtension(AppExtension::class)->getCartProduct($session); // Appelez la fonction via l'extension Twig$response->headers->set(AbstractSessionListener::NO_AUTO_CACHE_CONTROL_HEADER, 'true'); // A supprimer apres fin devreturn $this->render('defaut/contact.html.twig', ['services' => $services,'cartProduct' => $cartProduct,'formulaire' => $formulaire->createView(),'erreurs' => $erreurs]);}#[Route('/pdf/{id}', name: 'app_document_transaction', methods: ['GET'])]public function envelopper(?Subscription $subscription){return new BinaryFileResponse('../prive/document/transaction/' . \strval($subscription->getReference()) . '.pdf');}public function removeDashAndDigitsFromEnd($str) {$pattern = '/-(\d+)$/'; // Pattern pour correspondre au tiret suivi d'un ou plusieurs chiffres à la fin$replacement = ''; // Remplacement par une chaîne videreturn preg_replace($pattern, $replacement, $str);}}