<?php
namespace App\EventSubscriber;
//use App\Form\EnviarPlantillaNotificacionType;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
//use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\FormFactoryInterface;
use Symfony\Component\HttpKernel\Event\ControllerEvent;
use Symfony\Component\HttpKernel\KernelEvents;
//use Twig\Environment;
class NotificacionFormSubscriber implements EventSubscriberInterface
{
public function __construct(
// private readonly FormFactoryInterface $formFactory,
// private readonly Environment $twig
)
{
}
public static function getSubscribedEvents(): array
{
return [
KernelEvents::CONTROLLER => 'onKernelController',
];
}
public function onKernelController(ControllerEvent $event): void
{
// $request = $event->getRequest();
//
// $route = $request->attributes->get('_route');
//// $routeParams = json_encode($request->attributes->get('_route_params')) ?? [];
//// $routeView = $this->getTemplateForRoute($request->attributes->get('_route'));
//// $routeController = $request->attributes->get('_controller') ?? null;
////
//// dump($this->checkAllowedRoute($route));
//// die;
//
// // Si la route está definida en la función getTemplateForRoute, añadimos el formulario a la vista.
// if ($this->checkAllowedRoute($route)) {
// $form = $this->formFactory->create(
// EnviarPlantillaNotificacionType::class,
// null,
// [
// //'action' => $this->router->generate('back_enviar_plantilla_notificacion_usuario')
// ]
// );
//
// $form
// ->add('_route', HiddenType::class, ['data' => $route])
//// ->add('_route_params', HiddenType::class, ['data' => $routeParams])
//// ->add('_route_view', HiddenType::class, ['data' => $routeView])
//// ->add('_route_controller', HiddenType::class, ['data' => $routeController])
// ;
//
// $this->twig->addGlobal('formEnviarNotificacion', $form->createView());
// }
}
// // Hay que definir las rutas permitidas para no adjuntar el form en todas.
// private function checkAllowedRoute(string $route): bool
// {
// return in_array($route, [
// 'back_listado_usuarios',
// 'back_listado_alumnos',
// 'back_listado_solicitudes',
// 'back_ver_usuario',
// 'back_ver_solicitud',
// 'back_ver_alumno'
// ]);
// }
//
// // Hay que definir las rutas junto con la plantilla de donde se usará el form de enviar notificación.
// private function getTemplateForRoute(?string $route): ?string
// {
// return match ($route) {
// 'back_listado_usuarios' => 'usuario/listado.html.twig',
// 'back_listado_alumnos' => 'alumnos/listado.html.twig',
// 'back_listado_solicitudes' => 'solicitud/listado.html.twig',
// 'back_ver_usuario' => 'usuario/ver-vision-general.html.twig',
// 'back_ver_solicitud' => 'solicitud/ver.html.twig',
// 'back_ver_alumno' => 'alumno/ver.html.twig',
// default => null
// };
// }
}