<?php
namespace App\Controller\Site;
use App\Entity\Chronique;
use App\Entity\Genre;
use App\Entity\Livre;
use App\Entity\Page;
use App\Repository\ChroniqueRepository;
use App\Repository\FrontPageRepository;
use App\Repository\GenreRepository;
use App\Repository\LivreRepository;
use App\Repository\PageRepository;
use Knp\Component\Pager\Paginator;
use Knp\Component\Pager\PaginatorInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController as Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
class LivreController extends Controller
{
/**
* @Route("/livre/{slug}", name="page_livre", priority=2)
*/
public function index(Livre $livre, PageRepository $pRepo, FrontPageRepository $frontPageRepository)
{
$front_page=$frontPageRepository->findOneByCodeWithModule( 'chronique');
$chro=$livre->getChroniques()[0];
$addedParams=[];
$addedParams['contact']=$chro->getContact()->getId();
foreach($front_page->getBlocks() as $module){
$module->setAdditionnalParameters($addedParams);
}
return $this->render('site/fpages.html.twig', [
'front_page' => $front_page,
'livre' => $livre,
'chronique' => $chro,
'addParams' => $addedParams,
]);
}
/**
* @param Chronique $chronique
* @param FrontPageRepository $frontPageRepository
* @return \Symfony\Component\HttpFoundation\Response
* @Route("/chronique/{chronique}", name="fp_chronique")
*/
public function chronique(Chronique $chronique, FrontPageRepository $frontPageRepository){
$front_page=$frontPageRepository->findOneBy(['Code' => 'chronique']);
return $this->render('site/fpages.html.twig',[
'front_page' => $front_page,
'chronique' => $chronique
]);
}
/**
* @param LivreRepository $lRepo
* @param Request $request
* @return \Symfony\Component\HttpFoundation\Response
* @Route("/les-livres-par-les-libraires/poche", name="page_poche", priority=2)
*/
public function listPoche(LivreRepository $lRepo, GenreRepository $gRepo, FrontPageRepository $frontPageRepository, Request $request, PaginatorInterface $paginator){
$front_page=$frontPageRepository->findOneBy(["Code" => "poche"]);
$pagination=$paginator->paginate(
$lRepo->findLivrePocheForFront(),
$request->query->getInt('page', 1),
36
);
return $this->render('site/fpages.html.twig', [
'front_page' => $front_page,
'livres' => $pagination
]);
}
/**
* @param Page $page
* @param LivreRepository $lRepo
* @param Request $request
* @return \Symfony\Component\HttpFoundation\Response
* @Route("/les-livres-par-les-libraires/{slug}", name="page_genre", priority=2)
*/
public function listbyGenre($slug, LivreRepository $lRepo, GenreRepository $gRepo, FrontPageRepository $frontPageRepository, Request $request, PaginatorInterface $paginator){
$front_page=$frontPageRepository->findOneBy(["Code"=> "genre"]);
$genre=$gRepo->findOneBy(["slug" => $slug]);
$pagination=$paginator->paginate(
$lRepo->findLivreByGenreForFront($genre),
$request->query->getInt('page', 1),
16
);
return $this->render('site/fpages.html.twig', [
'front_page' => $front_page,
'livres' => $pagination,
'genre' => $genre
]);
}
}