<?php
namespace App\Controller;
use App\Repository\Admin\CategorieRepository;
use App\Repository\Admin\EntiteeconomiqueRepository;
use App\Repository\Admin\PageRepository;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Knp\Component\Pager\PaginatorInterface;
class PageController extends AbstractController
{
/**
* Affichage des pages
* @Route("/{param0}/{param1}/{param2}", name="page")
*/
public function index($param0, $param1, $param2, EntiteeconomiqueRepository $entiteeconomiqueRepository,
PageRepository $pageRepository, Request $request, PaginatorInterface $paginator,
CategorieRepository $categorieRepository, EntityManagerInterface $entityManager): Response
{
$entite_eco = [];
$titre = '';
//param0 = a_decouvrir ou param0=sejour_cle_en_main
if ($param1) {
$page = $pageRepository->findByMenu($param1);
if ($page != null){
if ($param1 == "sites_touristiques"){
//Dans toutes les catégories
$categories = $categorieRepository->findAll();
}else{
//Les catégories de la page en question
$categories = $page->getCategories();
}
$ile = $param2 ? $param2 : null;
//on incrémente les cliques
$page->setNombreClick($page->getNombreClick()+1);
$entityManager->flush();
}else{
$this->addFlash('success', 'Page introuvable!');
return $this->redirectToRoute('home');
}
}
$entite_eco_filtree = $entiteeconomiqueRepository->showByCategoriesAndIle($categories, $ile, $param1);
$entite_eco = $paginator->paginate(
$entite_eco_filtree,
$request->query->getInt('page', 1),
6
);
$other_entite_eco = $entiteeconomiqueRepository->showByCategoriesAndOtherIle($categories, $ile);
//dd($entite_eco);
return $this->render('page/index.html.twig', [
'entite_eco' => $entite_eco,
'other_entite_eco' => $other_entite_eco,
'page' => $page,
'param0' => $param0,
'param1' => $param1,
'ile' => $ile,
]);
}
/**
* @Route("/single/{nature_page}/{id}/{slug}", name="page_single")
*/
public function single($nature_page, EntiteeconomiqueRepository $entiteeconomiqueRepository, PageRepository $pageRepository,
CategorieRepository $categorieRepository, Request $request): Response
{
$img = false;
if ($nature_page and $nature_page == 'entiteeconomique'){
$element = $entiteeconomiqueRepository->find($request->get('id'));
$img = true;
}else{
$element = $pageRepository->find($request->get('id'));
}
return $this->render('page/single.html.twig', [
'element' => $element,
'img' => $img,
'page' => $element,
]);
}
/**
* @Route("/AINFCbYAAAAAYPm/{parametremenu}/", name="page_redirect")
*/
public function pageRedirect($parametremenu){
$tab = [
"ou_dormir" => "ou_dormir",
"ou_manger" => "ou_manger",
"tours_operateurs" => "tours_operateurs",
"location_de_voitures" => "location_de_voitures",
"vols_inter_iles" => "vols_inter_iles",
"transport_maritime_inter_iles" => "transport_maritime_inter_iles",
"visa_&_formalite_d_entree" => "visa_&_formalite_d_entree",
"vols_vers_les_comores" => "vols_vers_les_comores",
"numeros_utiles" => "numeros_utiles",
"banques_&_changes" => "banques_&_changes",
"consulats_etrangers" => "consulats_etrangers",
"prevention_sante" => "prevention_sante",
"brochures_&_guides" => "brochures_&_guides",
"histoire" => "histoire",
"traditions_&_culture" => "traditions_&_culture",
"geographie" => "geographie",
"gastronomie" => "gastronomie",
"faune_&_flore" => "faune_&_flore",
"activites_nautiques" => "activites_nautiques",
"sites_naturels" => "sites_naturels",
"plages" => "plages",
"patrimoines_historiques" => "patrimoines_historiques",
"musees" => "musees",
"art_et_artisanat" => "art_et_artisanat",
];
//dd($parametremenu);
if ($parametremenu and in_array($parametremenu, $tab)){
if ($parametremenu == 'ou_dormir'){
$param0 = "sejour_cle_en_main";
$param2 = "ngz";
}elseif ($parametremenu == "ou_manger"){
$param0 = "sejour_cle_en_main";
$param2 = "ngz";
}elseif ($parametremenu == "tours_operateurs"){
$param0 = "sejour_cle_en_main";
$param2 = "km";
}elseif ($parametremenu == "location_de_voitures"){
$param0 = "sejour_cle_en_main";
$param2 = "km";
}elseif ($parametremenu == "vols_inter_iles"){
$param0 = "sejour_cle_en_main";
$param2 = "km";
}elseif ($parametremenu == "transport_maritime_inter_iles"){
$param0 = "sejour_cle_en_main";
$param2 = "km";
}elseif ($parametremenu == "visa_&_formalite_d_entree"){
$param0 = "sejour_cle_en_main";
$param2 = "km";
}elseif ($parametremenu == "vols_vers_les_comores"){
$param0 = "sejour_cle_en_main";
$param2 = "km";
}elseif ($parametremenu == "numeros_utiles"){
$param0 = "sejour_cle_en_main";
$param2 = "km";
}elseif ($parametremenu == "banques_&_changes"){
$param0 = "sejour_cle_en_main";
$param2 = "km";
}elseif ($parametremenu == "consulats_etrangers"){
$param0 = "sejour_cle_en_main";
$param2 = "km";
}elseif ($parametremenu == "prevention_sante"){
$param0 = "sejour_cle_en_main";
$param2 = "km";
}elseif ($parametremenu == "brochures_&_guides"){
$param0 = "sejour_cle_en_main";
$param2 = "km";
}elseif ($parametremenu == "plages"){
$param0 = "sejour_cle_en_main";
$param2 = "km";
}elseif ($parametremenu == "sites_naturels"){
$param0 = "sejour_cle_en_main";
$param2 = "km";
}elseif ($parametremenu == "patrimoines_historiques"){
$param0 = "sejour_cle_en_main";
$param2 = "km";
}elseif ($parametremenu == "musees"){
$param0 = "sejour_cle_en_main";
$param2 = "km";
}elseif ($parametremenu == "art_et_artisanat"){
$param0 = "sejour_cle_en_main";
$param2 = "km";
}elseif ($parametremenu == "activites_nautiques"){
$param0 = "sejour_cle_en_main";
$param2 = "km";
}elseif ($parametremenu == "bar_discotheques"){
$param0 = "sejour_cle_en_main";
$param2 = "km";
}
elseif ($parametremenu == "histoire"){
$param0 = "a_decouvrir";
$param2 = "km";
}elseif ($parametremenu == "traditions_&_culture"){
$param0 = "a_decouvrir";
$param2 = "km";
}elseif ($parametremenu == "geographie"){
$param0 = "a_decouvrir";
$param2 = "km";
}elseif ($parametremenu == "gastronomie"){
$param0 = "a_decouvrir";
$param2 = "km";
}elseif ($parametremenu == "faune_&_flore"){
$param0 = "a_decouvrir";
$param2 = "km";
}
return $this->redirectToRoute('page', ['param0' => $param0, 'param1' => $parametremenu, 'param2'=>$param2]);
}
}
}