<?php
declare(strict_types=1);
namespace App\Controller\Front;
use App\Entity\PostType\Page\Page;
use App\Entity\PostType\PostType;
use App\Repository\Boutique\Evenement\EvenementRepository;
use App\Repository\Boutique\Produit\ProduitRepository;
use App\Repository\PostTypeRepository;
use App\Repository\User\CoachRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class PageController extends AbstractController
{
#[Route('/', name: 'app_front_page_index', methods: ['GET'])]
public function index(
PostTypeRepository $postTypeRepository
): Response {
return $this->render('front/index.html.twig', [
'page' => $postTypeRepository->find(PostType::INDEX),
'controller_name' => 'PageController',
]);
}
#[Route('/old-accueil', name: 'app_front_page_old_index', methods: ['GET'])]
public function oldIndex(
ProduitRepository $produitRepository,
CoachRepository $coachRepository,
EvenementRepository $evenementRepository
): Response {
return $this->render('front/old_index.html.twig', [
'evenement' => $evenementRepository->findBy([], limit: 1),
'produits' => $produitRepository->findBy([], limit: 2),
'coaches' => $coachRepository->findBy([], limit: 2),
]);
}
#[Route('/page/{name}', name: 'app_front_page_detail', methods: ['GET'])]
public function page(Page $page): Response
{
if (
PostType::STATUS_PUBLISHED !== $page->getStatus()
&& !$this->isGranted('ROLE_ADMIN')
) {
throw $this->createNotFoundException('The page does not exist.');
}
return $this->render('front/page.html.twig', [
'page' => $page,
]);
}
}