<?php
namespace App\Controller\Pages;
use App\Entity\Events;
use App\Repository\EventsRepository;
use App\Repository\PeriodesRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
/**
* @Route("/visiter")
*/
class PagesVisitesController extends AbstractController
{
/**
* @Route("/experiences-en-terre-ivoirienne", name="visiter.experiences", defaults={"title":"Expériences En Terre Ivoirienne"})
* @param $title
* @return Response
*/
public function experiences($title): Response
{
return $this->render('pages/internes/visites/experiences.html.twig', [
'title' => $title,
'menu' => "Visiter",
'current_page' => 'visites'
]);
}
/**
* @Route("/calendrier-fete-traditionnelle", name="visiter.calendrier.fete", defaults={"title":"Calendrier fĂȘte Traditionnelle"})
* @param $title
* @param PeriodesRepository $periodesRepository
* @param EventsRepository $eventsRepository
* @return Response
*/
public function calendrierFeteTraditionnelle($title, PeriodesRepository $periodesRepository, EventsRepository $eventsRepository): Response
{
$periodes = $periodesRepository->findBy([], ['numero' => 'ASC']);
$numMois = date('m');
$periodeAlaUne = $periodesRepository->findOneBy(['numero' => $numMois]);
$eventsAlaUne = $eventsRepository->findBy(['periodes' => $periodeAlaUne], ['createdAt' => 'ASC']);
$events = [];
foreach ($periodes as $periode){
$events[$periode->getId()] = $eventsRepository->findBy(['periodes' => $periode]);
}
return $this->render('pages/internes/visites/calendrierFeteTraditionnelle.html.twig', [
'title' => $title,
'periodes' => $periodes,
'periodeAlaUne' => $periodeAlaUne,
'eventsAlaUne' => $eventsAlaUne,
'events' => $events,
'menu' => "Visiter",
'current_page' => 'visites'
]);
}
/**
* @Route("/calendrier/{id}/{slug}", name="events.show")
* @param string $slug
* @param Events $event
* @return Response
*/
public function showCalendrier(string $slug, Events $event):
Response
{
if ($event->getSlug() !== $slug) {
return $this->redirectToRoute('events.show', [
'id' => $event->getId(),
'slug' => $event->getSlug(),
], 301);
}
return $this->render('pages/internes/visites/showcalendrier.html.twig', [
'title' => $event->getName(),
'event' => $event,
'menu' => "Visiter",
'current_page' => 'visites'
]);
}
}