src/Controller/Front/FrontController.php line 38
<?phpnamespace App\Controller\Front;use App\Entity\Actualite;use App\Entity\Contact;use App\Entity\ContactInfos;use App\Entity\Contrats;use App\Entity\Diplomes;use App\Entity\Domaines;use App\Entity\Pole;use App\Form\ContactType;use App\Repository\ActualiteRepository;use App\Repository\AgendaRepository;use App\Repository\BlocAccordeonRepository;use App\Repository\BlocColonneRepository;use App\Repository\BlocDiaporamaRepository;use App\Repository\BlocTextImageRepository;use App\Repository\BlocVideoRepository;use App\Repository\FormationRepository;use App\Repository\OffreEmploiRepository;use App\Repository\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 Ttskch\PaginatorBundle\Context;use Ttskch\PaginatorBundle\Entity\Criteria;class FrontController extends AbstractController{public function __construct(private EntityManagerInterface $entityManager){}#[Route('/', name: 'app_front')]public function index(Request $request, PageRepository $pageRepository): Response{$poles = $this->entityManager->getRepository(Pole::class)->findAll();$domaines = $this->entityManager->getRepository(Domaines::class)->findAll();$diplomes = $this->entityManager->getRepository(Diplomes::class)->findAll();$contrats = $this->entityManager->getRepository(Contrats::class)->findAll();$actualites = $this->entityManager->getRepository(Actualite::class)->findAll();$firstLabel = $request->get('firstLabel');$secondLabelEleve = (string) $request->get('secondLabelEleve');$secondLabelParent = (string) $request->get('secondLabelParent');$secondLabelEtudiant = (string) $request->get('secondLabelEtudiant');switch ($firstLabel) {case 'eleve':if ('Pôle 6 5 4' === $secondLabelEleve) {$slug = $pageRepository->findOneBy(['titre' => 'Pôle 6e 5e 4e'])->getSlug();return $this->redirect($this->generateUrl('page_front_slug', ['slug' => $slug]));} elseif ('Actualité pôle 6 5 4' === $secondLabelEleve) {return $this->redirect($this->generateUrl('app_actualite_list', ['pole' => '6,5,4ème']));} elseif ('Agenda pôle 6 5 4' === $secondLabelEleve) {return $this->redirect($this->generateUrl('app_evenement_list', ['pole' => '6,5,4ème']));} elseif ('Info pratique pôle 6 5 4' === $secondLabelEleve) {return $this->redirect($this->generateUrl('page_front_slug', ['slug' => 'infos-pratiques-pole-6-5-4']));} elseif ('Pôle 3 2' === $secondLabelEleve) {$slug = $pageRepository->findOneBy(['titre' => 'Pôle 3e 2de'])->getSlug();return $this->redirect($this->generateUrl('page_front_slug', ['slug' => $slug]));} elseif ('Actualité pôle 3 2' === $secondLabelEleve) {return $this->redirect($this->generateUrl('app_actualite_list', ['pole' => '3ème & 2de']));} elseif ('Agenda pôle 3 2' === $secondLabelEleve) {return $this->redirect($this->generateUrl('app_evenement_list', ['pole' => '3ème & 2de']));} elseif ('Info pratique pôle 3 2' === $secondLabelEleve) {return $this->redirect($this->generateUrl('page_front_slug', ['slug' => 'infos-pratiques-pole-3-2']));} elseif ('Pôle 1 T' === $secondLabelEleve) {$slug = $pageRepository->findOneBy(['titre' => 'Pôle 1re / Terminale'])->getSlug();return $this->redirect($this->generateUrl('page_front_slug', ['slug' => $slug]));} elseif ('Actualité pôle 1 T' === $secondLabelEleve) {return $this->redirect($this->generateUrl('app_actualite_list', ['pole' => '1re & Terminal']));} elseif ('Agenda pôle 1 T' === $secondLabelEleve) {return $this->redirect($this->generateUrl('app_evenement_list', ['pole' => '1re & Terminal']));} elseif ('Info pratique pôle 1 T' === $secondLabelEleve) {return $this->redirect($this->generateUrl('page_front_slug', ['slug' => 'infos-pratiques-pole-1-t']));}break;case 'parent':if ('Agenda pôle 6 5 4' === $secondLabelParent) {return $this->redirect($this->generateUrl('app_evenement_list', ['pole' => '6,5,4ème']));} elseif ('Info pratique pôle 3 2' === $secondLabelParent) {return $this->redirect($this->generateUrl('page_front_slug', ['slug' => 'infos-pratiques-pole-6-5-4']));} elseif ('Agenda pôle 3 2' === $secondLabelParent) {return $this->redirect($this->generateUrl('app_evenement_list', ['pole' => '3ème & 2de']));} elseif ('Info pratique pôle 3 2' === $secondLabelParent) {return $this->redirect($this->generateUrl('page_front_slug', ['slug' => 'infos-pratiques-pole-3-2']));} elseif ('Agenda pôle 1 T' === $secondLabelParent) {return $this->redirect($this->generateUrl('app_evenement_list', ['pole' => '1re & Terminal']));} elseif ('Info pratique pôle 1 T' === $secondLabelParent) {return $this->redirect($this->generateUrl('page_front_slug', ['slug' => 'infos-pratiques-pole-1-t']));} elseif ('Pôle 6 5 4' === $secondLabelParent) {$slug = $pageRepository->findOneBy(['titre' => 'Pôle 6e 5e 4e'])->getSlug();return $this->redirect($this->generateUrl('page_front_slug', ['slug' => $slug]));} elseif ('Actualité pôle Lycée Pro' === $secondLabelParent) {return $this->redirect($this->generateUrl('app_actualite_list', ['pole' => 'Lycée Professionnel']));} elseif ('Agenda pôle Lycée Pro' === $secondLabelParent) {return $this->redirect($this->generateUrl('app_evenement_list', ['pole' => 'Lycée Professionnel']));} elseif ('Info pratique pôle Lycée Pro' === $secondLabelParent) {return $this->redirect($this->generateUrl('page_front_slug', ['slug' => 'infos-pratiques-pole-lycee-professionnel']));}break;case 'etudiant':if ('Pôle ES' === $secondLabelEtudiant) {$slug = $pageRepository->findOneBy(['titre' => 'Pôle Enseignement Supérieur'])->getSlug();return $this->redirect($this->generateUrl('page_front_slug', ['slug' => $slug]));} elseif ('Actualité pôle ES' === $secondLabelEtudiant) {return $this->redirect($this->generateUrl('app_actualite_list', ['pole' => 'Enseignement Supérieur']));} elseif ('Agenda pôle ES' === $secondLabelEtudiant) {return $this->redirect($this->generateUrl('app_evenement_list', ['pole' => 'Enseignement Supérieur']));} elseif ('Info pratique pôle ES' === $secondLabelEtudiant) {return $this->redirect($this->generateUrl('page_front_slug', ['slug' => 'infos-pratiques-enseignement-superieur']));} elseif ('Pôle Centre de formation' === $secondLabelEtudiant) {$slug = $pageRepository->findOneBy(['titre' => 'Pôle Centre de formation'])->getSlug();return $this->redirect($this->generateUrl('page_front_slug', ['slug' => $slug]));} elseif ('Actualité pôle Centre de formation' === $secondLabelEtudiant) {return $this->redirect($this->generateUrl('app_actualite_list', ['pole' => 'Centre de formation']));} elseif ('Agenda pôle Centre de formation' === $secondLabelEtudiant) {return $this->redirect($this->generateUrl('app_evenement_list', ['pole' => 'Centre de formation']));} elseif ('Info pratique pôle Centre de formation' === $secondLabelEtudiant) {return $this->redirect($this->generateUrl('page_front_slug', ['slug' => 'infos-pratiques-centre-de-formation']));}break;}return $this->render('front/index.html.twig', ['poles' => $poles,'domaines' => $domaines,'diplomes' => $diplomes,'contrats' => $contrats,'actualites' => $actualites,]);}#[Route('/page/{id<[1-9]\d*>}', name: 'page_front'),Route('/page/{slug}', name: 'page_front_slug')]public function page(PageRepository $pageRepository,BlocTextImageRepository $blocTextImageRepository,BlocAccordeonRepository $blocAccordeonRepository,BlocColonneRepository $blocColonneRepository,BlocDiaporamaRepository $blocDiaporamaRepository,BlocVideoRepository $blocVideoRepository,?int $id,?string $slug): Response {if (null !== $slug) {$page = $pageRepository->findOneBy(['slug' => $slug]);} else {$page = $pageRepository->findOneBy(['id' => $id]);}if (null === $page || (!$this->isGranted('ROLE_ADMIN') && false === $page->isVisible())) {throw $this->createNotFoundException('Page not found');}if ($this->isGranted('ROLE_ADMIN') && false === $page->isVisible()) {$this->addFlash('success', 'Cette page est visible car vous ête administrateur');}if ($page->getSeoParent()) {$redirection301 = $page->getSeoParent()->getRedirection301();if ('' !== $redirection301) {return $this->redirect($redirection301, 301);}}$id = $page->getId();$blocks = $pageRepository->getAllBlocks($id);$i = 0;$blocs[] = [];foreach ($blocks as $bloc) {if (null !== $bloc['text_image_id_id']) {if (null !== $pageRepository->getImageId($bloc['text_image_id_id'])) {$blocs[$i]['textImage'] = $blocTextImageRepository->findOneBy(['id' => $bloc['text_image_id_id']]);// $blocs[$i]['textImage'] = $pageRepository->getImageId($bloc['text_image_id_id']);}} elseif (null !== $bloc['bloc_diaporama_id']) {// $blocs = array_merge($blocs, $bloc);if (null !== $pageRepository->getDiaporamaId($bloc['bloc_diaporama_id'])) {// $blocs[$i]['titre'] = $bloc['titre_bloc_diaporama'];$blocs[$i]['diaporama'] = $blocDiaporamaRepository->findOneBy(['id' => $bloc['bloc_diaporama_id']]);// $blocs[$i]['diaporama'] = $pageRepository->getDiaporamaId($bloc['bloc_diaporama_id']);}} elseif (null !== $bloc['bloc_accordeon_id']) {if (null !== $pageRepository->getAccordeonId($bloc['bloc_accordeon_id'])) {// $blocs[$i]['titre'] = $bloc['titre_bloc_accordeon'];$blocs[$i]['accordeon'] = $blocAccordeonRepository->findOneBy(['id' => $bloc['bloc_accordeon_id']]);}} elseif (null !== $bloc['colonne_id_id']) {if (null !== $pageRepository->getColonneId($bloc['colonne_id_id'])) {// $blocs[$i]['titre'] = $bloc['titre_bloc_colonne'];$blocs[$i]['colonne'] = $blocColonneRepository->findOneBy(['id' => $bloc['colonne_id_id']]);}} elseif (null !== $bloc['bloc_video_id']) {if (null !== $pageRepository->getBlocVideo($bloc['bloc_video_id'])) {// $blocs[$i]['titre'] = $bloc['titre_bloc_texte'];$blocs[$i]['blocVideo'] = $blocVideoRepository->findOneBy(['id' => $bloc['bloc_video_id']]);}}++$i;}return $this->render('front/page.html.twig', ['page' => $page,'blocs' => $blocs,]);}#[Route('/contact', name: 'app_page_contact')]public function contact(Request $request): Response{$contact = new Contact();$form = $this->createForm(ContactType::class, $contact);$contactInfo = $this->entityManager->getRepository(ContactInfos::class)->findOneBy(['id' => ContactInfos::ID_CONTACTINFOS]);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {$contact = $form->getData();$this->entityManager->persist($contact);$this->entityManager->flush();$contact = new Contact();$form = $this->createForm(ContactType::class, $contact);}return $this->render('front/contact.html.twig', ['form' => $form->createView(),'contact_info' => $contactInfo,]);}#[Route('/recherche', name: 'app_page_recherche')]public function recherche(Request $request,ActualiteRepository $actualiteRepository,AgendaRepository $evenementRepository,FormationRepository $formationRepository,OffreEmploiRepository $offreEmploiRepository,Context $context): Response {$search = $request->get('search');$arraySearch = [];if (null !== $search) {foreach ($actualiteRepository->search($search) as $actu) {$arraySearch[] = $actu;}foreach ($evenementRepository->search($search) as $evenement) {$arraySearch[] = $evenement;}foreach ($formationRepository->search($search) as $formation) {$arraySearch[] = $formation;}foreach ($offreEmploiRepository->search($search) as $offre) {$arraySearch[] = $offre;}}$context->initialize('id',function (Criteria $criteria) use ($arraySearch) {return \array_slice($arraySearch, $criteria->limit * ($criteria->page - 1), $criteria->limit);},function () use ($arraySearch) {return \count($arraySearch);});$nbSearcheResult = $context->count;return $this->render('front/recherche.html.twig', ['search' => $search,'arraySearch' => $context->slice,'nbSearcheResult' => $nbSearcheResult,]);}}