<?php
namespace App\Controller;
use App\Entity\Category;
use App\Twig\GenerateLinkExtension;
use App\Repository\CalendarRepository;
use App\Service\Formatdate;
use App\Repository\CategoryRepository;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
class HomeController extends AbstractController
{
#[Route('/', name: 'app_home')]
public function index(CalendarRepository $calendarRepository, GenerateLinkExtension $generateLinkExtension,
CategoryRepository $categoryRepository , Formatdate $formatdateService): Response
{
$calendars = $calendarRepository->getAllCalendarActivitie();
setlocale(LC_TIME, 'fr_FR');
// Formate les dates avec le service Formatdate
foreach ($calendars as $calendar) {
$calendar->formattedStartDate = $formatdateService->formatCustomDate($calendar->getStart());
$calendar->formattedEndDate = $formatdateService->formatCustomDate($calendar->getEnd());
}
$categories = $categoryRepository->findAll();
// Récupérer l'utilisateur connecté
$user = $this->getUser();
// Initialiser le nom complet à null par défaut
$fullName = null;
// Vérifier si un utilisateur est connecté
if ($user) {
// Si oui, récupérer le nom complet de l'utilisateur
$fullName = $user->getFullName();
}
// Récupérer toutes les titres et image par categories
$categoriesImgTitle = $categoryRepository->findAllWithImages();
// dd($categoriesImgTitle);
$titles = [];
$images = [];
foreach ($categoriesImgTitle as $category) {
$titles[] = $category['titleCategory'];
$images[] = $category['image'];
}
// Utiliser le service pour récupérer les liens de catégorie
$categoryLinks = $generateLinkExtension->generateCategoryLinks();
// dd($categoryLinks);
return $this->render('calendarFilter/index.html.twig', [
'calendars' => $calendars,
'categories' => $categories,
'titles' => $titles,
'images' => $images,
'categoryLinks' => $categoryLinks,
'fullName' => $fullName,
]);
}
#[Route('/presentation', name: 'app_presentation')]
public function presentation()
{
return $this->render('home/presentation.html.twig', [
]);
}
}