<?php
namespace App\Controller;
use App\Repository\ApplicationRepository;
use App\Repository\BibliothequePedagogiqueRepository;
use App\Repository\CorpusRepository;
use App\Repository\ImageRepository;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
class PageController extends AbstractController
{
private $twig_parameter = [];
private $corpusRepository;
private $imageRepository;
private $bibliothequePedagogiqueRepository;
private $appRepository;
public function __construct(RequestStack $requestStack, CorpusRepository $corpusRepository, ImageRepository $imageRepository, BibliothequePedagogiqueRepository $bibliothequePedagogiqueRepository, ApplicationRepository $appRepository)
{
$this->corpusRepository = $corpusRepository;
$this->imageRepository = $imageRepository;
$this->bibliothequePedagogiqueRepository = $bibliothequePedagogiqueRepository;
$this->appRepository = $appRepository;
$this->twig_parameter['corpusCount'] = count($this->corpusRepository->findBy(['active' => true]));
$this->twig_parameter['locale'] = $requestStack->getCurrentRequest()->getLocale() == "fr" ? "Fr" : "En";
}
/**
* @Route("/", name="{redirectionLocal}")
*/
public function redirectionLocal(Request $request): Response
{
return $this->redirectToRoute('home', ['_locale' => $request->getLocale()]);
}
/**
* @Route("/{_locale}", name="home")
*/
public function home(): Response
{
$applications = $this->appRepository->getSlug();
$this->twig_parameter['applications'] = $applications;
return $this->render('bdnf/accueil.html.twig',$this->twig_parameter);
}
/**
* @Route("/{_locale}/bibliotheque-pedagogique", name="bibliotheque-pedagogique")
*/
public function bibliotheque_pedagogique(): Response
{
$fiches = $this->bibliothequePedagogiqueRepository->findBy(['active' => true]);
$categoryFiches = [];
$defaultFiches = [];
foreach($fiches as $fiche){
if($fiche->getCategory() != null){
if(empty($categoryFiches[$fiche->getCategory()])){
$categoryFiches[$fiche->getCategory()] = [$fiche];
} else {
$categoryFiches[$fiche->getCategory()][] = $fiche;
}
} else {
$defaultFiches[] = $fiche;
}
}
$this->twig_parameter['defaultFiches'] = $defaultFiches;
$this->twig_parameter['categoryFiches'] = $categoryFiches;
return $this->render('bdnf/bibliotheque-pedagogique.html.twig',$this->twig_parameter);
}
/**
* @Route("/{_locale}/cookies", name="cookies")
*/
public function cookies(): Response
{
return $this->render('bdnf/cookies.html.twig',$this->twig_parameter);
}
/**
* @Route("/{_locale}/cgu", name="cgu")
*/
public function cgu(): Response
{
return $this->render('bdnf/cgu.html.twig',$this->twig_parameter);
}
/**
* @Route("/{_locale}/corpus", name="corpus")
*/
public function corpus(): Response
{
$corpus = $this->corpusRepository->findBy(["active" => true],['position'=>'DESC']);
$this->twig_parameter['corpus'] = $corpus;
return $this->render('bdnf/corpus.html.twig',$this->twig_parameter);
}
/**
* @Route("/{_locale}/galerie", name="galerie")
*/
public function galerie(): Response
{
return $this->render('bdnf/galerie.html.twig',$this->twig_parameter);
}
/**
* @Route("/{_locale}/galerie/comic_strip", name="galerie_comic_strip")
*/
public function galerie_comic_strip(): Response
{
return $this->render('bdnf/galerie_comic_strip.html.twig',$this->twig_parameter);
}
/**
* @Route("/{_locale}/galerie/bd_patrimoniale", name="galerie_bd_patrimoniale")
*/
public function galerie_bd_patrimoniale(): Response
{
return $this->render('bdnf/galerie_bd_patrimoniale.html.twig',$this->twig_parameter);
}
/**
* @Route("/{_locale}/galerie/webtoon", name="galerie_webtoon")
*/
public function galerie_webtoon(): Response
{
return $this->render('bdnf/galerie_webtoon.html.twig',$this->twig_parameter);
}
/**
* @Route("/{_locale}/galerie/franco_belge", name="galerie_franco_belge")
*/
public function galerie_franco_belge(): Response
{
return $this->render('bdnf/galerie_franco_belge.html.twig',$this->twig_parameter);
}
/**
* @Route("/{_locale}/faq", name="faq")
*/
public function faq(): Response
{
return $this->render('bdnf/faq.html.twig',$this->twig_parameter);
}
/**
* @Route("/{_locale}/contact", name="contact")
*/
public function contact(): Response
{
return $this->render('bdnf/contact.html.twig',$this->twig_parameter);
}
/**
* @Route("/{_locale}/concours", name="concours")
*/
public function concours($_locale): Response
{
if($_locale == 'en'){
return $this->render('bdnf/concours_no_content.html.twig',$this->twig_parameter);
} else {
return $this->render('bdnf/concours.html.twig',$this->twig_parameter);
}
}
/**
* @Route("/{_locale}/credits", name="credits")
*/
public function credits(): Response
{
return $this->render('bdnf/credits.html.twig',$this->twig_parameter);
}
/**
* @Route("/{_locale}/mentions-legales", name="mentions-legales")
*/
public function mentions_legales(): Response
{
return $this->render('bdnf/mentions_legales.html.twig',$this->twig_parameter);
}
/**
* @Route("/{_locale}/presse", name="presse")
*/
public function presse(): Response
{
return $this->render('bdnf/presse.html.twig',$this->twig_parameter);
}
/**
* @Route("/{_locale}/historique_des_versions", name="historique_des_versions")
*/
public function historique_des_versions(): Response
{
return $this->render('bdnf/historique_version.html.twig',$this->twig_parameter);
}
}