✨ feat(TutoSubscriber): Gère la redirection vers /tutoriel depuis le sous-domaine.
✨ feat(caddy): Ajoute le sous-domaine tutoriel.esy-web.dev à la configuration caddy. ✨ feat(TutoController): Crée la route /tutoriel et affiche les liens des catégories.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
mainframe.esy-web.dev {
|
||||
tutoriel.esy-web.dev, mainframe.esy-web.dev {
|
||||
tls {
|
||||
dns cloudflare bnbe6SmF2kYBnDi4rEeoPI0wNXeFDWn0xZv7Dnfp
|
||||
}
|
||||
|
||||
@@ -18,12 +18,77 @@ use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
|
||||
use Symfony\Component\Routing\Attribute\Route;
|
||||
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
||||
use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
|
||||
use Twig\Environment;
|
||||
|
||||
class TutoController extends AbstractController
|
||||
{
|
||||
#[Route(path: '/tutoriel',name: 'app_tuto',methods: ['GET', 'POST'])]
|
||||
public function tuto(): Response
|
||||
{
|
||||
$categories =[
|
||||
'dashboard',
|
||||
'custom_graphics',
|
||||
'custom_colors',
|
||||
'custom_colors_degrade',
|
||||
'custom_fonts',
|
||||
'custom_fonts_custom',
|
||||
'custom_fontSize',
|
||||
'custom_crops',
|
||||
'custom_shape',
|
||||
'custom_files',
|
||||
'navbar',
|
||||
'menu',
|
||||
'content_management',
|
||||
'footer',
|
||||
'internal_page',
|
||||
'modules_txtAdmin',
|
||||
'modules_slider',
|
||||
'modules_parallax',
|
||||
'modules_pushForward',
|
||||
'modules_bouton',
|
||||
'modules_title',
|
||||
'modules_event',
|
||||
'modules_news',
|
||||
'modules_partenair',
|
||||
'modules_faq',
|
||||
'modules_form',
|
||||
'modules_socialNetwork',
|
||||
'modules_maps',
|
||||
'modules_newsletter',
|
||||
'modules_counter',
|
||||
'modules_cover',
|
||||
'modules_notif',
|
||||
'modules_photo',
|
||||
'modules_photoLibrary',
|
||||
'modules_video',
|
||||
'modules_videoLibrary',
|
||||
'modules_cloud',
|
||||
'modules_pdfViewer',
|
||||
'modules_sound',
|
||||
'modules_trustpilot',
|
||||
'modules_securedHoliday',
|
||||
'modules_googleAdsense',
|
||||
'modules_iframe',
|
||||
'setting',
|
||||
'setting_link',
|
||||
'setting_legal',
|
||||
'setting_ext',
|
||||
'setting_langue',
|
||||
'setting_security',
|
||||
'customer',
|
||||
'administrator',
|
||||
'customer_group',
|
||||
'customer_settings',
|
||||
];
|
||||
|
||||
$links = [];
|
||||
foreach ($categories as $category) {
|
||||
$links[] = $this->generateUrl('app_tuto_view',['type' => $category],UrlGeneratorInterface::ABSOLUTE_URL);
|
||||
}
|
||||
return $this->json($links);
|
||||
}
|
||||
#[Route(path: '/tutoriel/{type}',name: 'app_tuto_view',methods: ['GET', 'POST'])]
|
||||
public function tutoView(?string $type,EsyWebTutoRepository $esyWebTutoRepository): Response
|
||||
{
|
||||
|
||||
31
src/EventListener/TutoSubscriber.php
Normal file
31
src/EventListener/TutoSubscriber.php
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace App\EventListener;
|
||||
|
||||
use Presta\SitemapBundle\Event\SitemapPopulateEvent;
|
||||
use Presta\SitemapBundle\Sitemap\Url\UrlConcrete;
|
||||
use Symfony\Component\EventDispatcher\Attribute\AsEventListener;
|
||||
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
||||
use Symfony\Component\HttpFoundation\RedirectResponse;
|
||||
use Symfony\Component\HttpKernel\Event\RequestEvent;
|
||||
use Symfony\Component\HttpKernel\KernelEvents;
|
||||
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
||||
#[AsEventListener(event: KernelEvents::REQUEST,method: 'onKernelRequest')]
|
||||
class TutoSubscriber
|
||||
{
|
||||
public function __construct(private readonly UrlGeneratorInterface $urlGenerator)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function onKernelRequest(RequestEvent $event): void
|
||||
{
|
||||
$host = $event->getRequest()->getHost();
|
||||
$path = $event->getRequest()->getPathInfo();
|
||||
if($host == "tutoriel.esy-web.dev" && !str_contains($path,"/tutoriel")) {
|
||||
$redirect = new RedirectResponse($this->urlGenerator->generate('app_tuto'));
|
||||
$event->setResponse($redirect);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user