src/Controller/Front/AgendaController.php line 20
<?phpnamespace App\Controller\Front;use App\Entity\Agenda;use App\Repository\AgendaRepository;use App\Repository\PoleRepository;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\Routing\Annotation\Route;class AgendaController extends AbstractController{public function __construct(private AgendaRepository $evenementRepository){}#[Route('/evenements', name: 'app_evenement_list')]public function index(PoleRepository $poleRepository,Request $request): Response {return $this->render('front/evenement/index.html.twig', ['poles' => $poleRepository->findAll(),'evenements' => $this->evenementRepository->findBy(['visible' => true]),'poleSearch' => $request->get('pole'),]);}#[Route('/evenements/fc-load-events', name: 'app_evenement_fc_load_events')]public function fcLoadEvents(Request $request,PoleRepository $poleRepository,): Response {$filters = json_decode($request->get('filters'), true);if ([] === $filters) {$filters = $poleRepository->findAll();}$evenements = $this->evenementRepository->findByDate($request->get('start'),$request->get('end'),$filters);$events = [];foreach ($evenements as $evenement) {/** @var Agenda $evenement */$date = $evenement->getDate();$heureDebut = null !== $evenement->getHeureDebut() ? 'T'.$evenement->getHeureDebut()->format('H:i:s') : '';$heureFin = null !== $evenement->getHeureFin() ? 'T'.$evenement->getHeureFin()->format('H:i:s') : '';$events[] = ['title' => $evenement->getTitre(),'start' => $date->format('Y-m-d').$heureDebut,'end' => $date->format('Y-m-d').$heureFin,'url' => $this->generateUrl('app_evenement_detail_slug', ['slug' => $evenement->getSlug()]),'backgroundColor' => $evenement->getPoleId()->getColor() ? '#'.$evenement->getPoleId()->getColor() : '#43147369','borderColor' => $evenement->getPoleId()->getColor() ? '#'.$evenement->getPoleId()->getColor() : '#43147369',];}return $this->json($events);}#[Route('/evenement/{evenement<[0-9]\d*>}', name: 'app_evenement_detail'),Route('/evenement/{slug}', name: 'app_evenement_detail_slug')]public function detail(?int $evenement,?string $slug): Response {if (!$slug) {$evenement = $this->evenementRepository->find($evenement);} else {$evenement = $this->evenementRepository->findOneBy(['slug' => $slug]);}if (null === $evenement || (!$this->isGranted('ROLE_ADMIN') && false === $evenement->isVisible())) {throw $this->createNotFoundException('Page not found');}if ($this->isGranted('ROLE_ADMIN') && false === $evenement->isVisible()) {$this->addFlash('success', 'Cette page est visible car vous ĂȘte administrateur');}$evenements = $this->evenementRepository->findOther($evenement);return $this->render('front/evenement/detail.html.twig', ['evenement' => $evenement,'evenements' => $evenements,]);}// #[Route('/delete/{id}', name: 'app_agenda_delete_back', methods: ['POST'])]// public function delete(Request $request, Agenda $agenda, AgendaRepository $agendaRepository): Response// {// if ($this->isCsrfTokenValid('delete'.$agenda->getId(), $request->request->get('_token'))) {// $agendaRepository->remove($agenda, true);// }// return $this->redirectToRoute('app_agenda_index_back', [], Response::HTTP_SEE_OTHER);// }}