src/Controller/WidgetController.php line 18

  1. <?php
  2. namespace App\Controller;
  3. use App\Repository\ActualiteRepository;
  4. use App\Repository\AgendaRepository;
  5. use App\Repository\FormationRepository;
  6. use App\Repository\OffreEmploiRepository;
  7. use App\Repository\OptionsRepository;
  8. use App\Repository\PageRepository;
  9. use App\Repository\PoleRepository;
  10. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  11. use Symfony\Component\HttpFoundation\Request;
  12. use Symfony\Component\HttpFoundation\Response;
  13. class WidgetController extends AbstractController
  14. {
  15.     public function header(
  16.         OptionsRepository $optionsRepository,
  17.         int $idPostType null,
  18.         string $controllerEditName null,
  19.         PoleRepository $poleRepository
  20.     ): Response {
  21.         $informations $optionsRepository->findBy(['name' => ['information''informationIsCritique']]);
  22.         $poles $poleRepository->findAll();
  23.         return $this->render('front/includes/_header.html.twig', [
  24.             'poles' => $poles,
  25.             'informations' => $informations,
  26.             'idPostType' => $idPostType,
  27.             'controllerEditName' => $controllerEditName,
  28.         ]);
  29.     }
  30.     public function footer(OptionsRepository $optionsRepository): Response
  31.     {
  32.         $options $optionsRepository->flush();
  33.         return $this->render('front/includes/_footer.html.twig', [
  34.             'options' => $options,
  35.         ]);
  36.     }
  37.     public function breadcrumb(
  38.         Request $request,
  39.         ActualiteRepository $actualiteRepository,
  40.         AgendaRepository $evenementRepository,
  41.         FormationRepository $formationRepository,
  42.         PageRepository $pageRepository,
  43.         PoleRepository $poleRepository,
  44.         OffreEmploiRepository $offreEmploiRepository
  45.     ): Response {
  46.         $filariane = [];
  47.         $path explode('/'$request->getPathInfo());
  48.         $url array_splice($path1);
  49.         $pole $poleRepository->findOneBy(['name' => $request->get('pole')]);
  50.         switch (true) {
  51.             case str_contains($url[0], 'actualite'):
  52.                 if (\count($url)) {
  53.                     $actualite $actualiteRepository->find($url[1]);
  54.                     if (!$actualite) {
  55.                         $actualite $actualiteRepository->findOneBy(['slug' => $url[1]]);
  56.                     }
  57.                     if (null !== $pole) {
  58.                         $urlPole $this->generateUrl('page_front_slug', [
  59.                             'slug' => $pole->getUrlPole()->getSlug(),
  60.                         ]);
  61.                         $filariane = [
  62.                             ['pole' => $pole->getName(), 'url' => $urlPole],
  63.                             ['titre' => 'Actualités'],
  64.                             ['titre' => $$actualite->getTitre()],
  65.                         ];
  66.                         // $filariane = [$pole->getName(), 'Actualités', $actualite->getTitre()];
  67.                     } else {
  68.                         $filariane = [
  69.                             ['pole' => 'Actualités''url' => '#'],
  70.                             ['titre' => $actualite->getTitre()],
  71.                         ];
  72.                     }
  73.                 } else {
  74.                     if (null !== $pole) {
  75.                         $urlPole $this->generateUrl('page_front_slug', [
  76.                             'slug' => $pole->getUrlPole()->getSlug(),
  77.                         ]);
  78.                         $filariane = [
  79.                             ['pole' => $pole->getName(), 'url' => $urlPole],
  80.                             ['titre' => 'Actualités'],
  81.                         ];
  82.                         // $filariane = [$pole->getName(), 'Actualités'];
  83.                     } else {
  84.                         $filariane = [['pole' => 'Actualités']];
  85.                     }
  86.                 }
  87.                 break;
  88.             case str_contains($url[0], 'evenement'):
  89.                 if (\count($url)) {
  90.                     $evenement $evenementRepository->find($url[1]);
  91.                     if (!$evenement) {
  92.                         $evenement $evenementRepository->findOneBy(['slug' => $url[1]]);
  93.                     }
  94.                     if (null !== $pole) {
  95.                         $urlPole $this->generateUrl('page_front_slug', [
  96.                             'slug' => $pole->getUrlPole()->getSlug(),
  97.                         ]);
  98.                         $filariane = [
  99.                             ['pole' => $pole->getName(), 'url' => $urlPole],
  100.                             ['titre' => 'Agenda'],
  101.                             ['titre' => $evenement->getTitre()],
  102.                         ];
  103.                         // $filariane = [$pole->getName(), 'Agenda', $evenement->getTitre()];
  104.                     } else {
  105.                         $urlPole $this->generateUrl('page_front_slug', [
  106.                             'slug' => $evenement->getPoleId()->getUrlPole()->getSlug(),
  107.                         ]);
  108.                         $filariane = [
  109.                             ['pole' => $evenement->getPoleId()->getName(), 'url' => $urlPole],
  110.                             ['titre' => $evenement->getTitre()],
  111.                         ];
  112.                         // $filariane = ['Agenda', $evenement->getTitre()];
  113.                     }
  114.                 } else {
  115.                     if (null !== $pole) {
  116.                         $urlPole $this->generateUrl('page_front_slug', [
  117.                             'slug' => $pole->getUrlPole()->getSlug(),
  118.                         ]);
  119.                         $filariane = [
  120.                             ['pole' => $pole->getName(), 'url' => $urlPole],
  121.                             ['titre' => 'Agenda'],
  122.                         ];
  123.                         // $filariane = [$pole->getName(), 'Agenda'];
  124.                     } else {
  125.                         $filariane = [
  126.                             ['pole' => 'Agenda'],
  127.                         ];
  128.                         // $filariane = ['Agenda'];
  129.                     }
  130.                 }
  131.                 break;
  132.             case str_contains($url[0], 'formation'):
  133.                 if (\count($url)) {
  134.                     $formation $formationRepository->find($url[1]);
  135.                     if (!$formation) {
  136.                         $formation $formationRepository->findOneBy(['slug' => $url[1]]);
  137.                     }
  138.                     if (null !== $pole) {
  139.                         $urlPole $this->generateUrl('page_front_slug', [
  140.                             'slug' => $pole->getUrlPole()->getSlug(),
  141.                         ]);
  142.                         $filariane = [
  143.                             ['pole' => $pole->getName(), 'url' => $urlPole],
  144.                             ['titre' => 'Formations'],
  145.                             ['titre' => $formation->getTitreFormation()],
  146.                         ];
  147.                         // $filariane = [$pole->getName(), 'Formations', $formation->getTitreFormation()];
  148.                     } else {
  149.                         $urlPole $this->generateUrl('page_front_slug', [
  150.                             'slug' => $formation->getPoleId()->getUrlPole()->getSlug(),
  151.                         ]);
  152.                         $filariane = [
  153.                             ['pole' => 'Formations''url' => $urlPole],
  154.                             ['titre' => $formation->getTitreFormation()],
  155.                         ];
  156.                         // $filariane = ['Formations', $formation->getTitreFormation()];
  157.                     }
  158.                 } else {
  159.                     if (null !== $pole) {
  160.                         $urlPole $this->generateUrl('page_front_slug', [
  161.                             'slug' => $pole->getUrlPole()->getSlug(),
  162.                         ]);
  163.                         $filariane = [
  164.                             ['pole' => $pole->getName(), 'url' => $urlPole],
  165.                             ['titre' => 'Formations'],
  166.                         ];
  167.                         // $filariane = [$pole->getName(), 'Formations'];
  168.                     } else {
  169.                         $filariane = [
  170.                             ['pole' => 'Formations'],
  171.                         ];
  172.                         // $filariane = ['Formations'];
  173.                     }
  174.                 }
  175.                 break;
  176.             case str_contains($url[0], 'offres-emploi') || str_contains($url[0], 'offre-emploi'):
  177.                 if (\count($url)) {
  178.                     $offreEmploi $offreEmploiRepository->find($url[1]);
  179.                     if (!$offreEmploi) {
  180.                         $offreEmploi $offreEmploiRepository->findOneBy(['slug' => $url[1]]);
  181.                     }
  182.                     $urlPole $this->generateUrl('app_offre_emploi_list');
  183.                     $filariane = [
  184.                         ['pole' => 'Isaac''url' => '/page/presentation-isaac'],
  185.                         ['titre' => 'Offres d\'emploi''url' => $urlPole],
  186.                         ['titre' => $offreEmploi->getTitre()],
  187.                     ];
  188.                     // $filariane = ['Isaac', 'Offres d\'emploi', $offreEmploi->getTitre()];
  189.                 } else {
  190.                     $filariane = [
  191.                         ['pole' => 'Isaac''url' => '/page/presentation-isaac'],
  192.                         ['titre' => 'Offres d\'emploi'],
  193.                     ];
  194.                     // $filariane = ['Isaac', 'Offres d\'emploi'];
  195.                 }
  196.                 break;
  197.             case str_contains($url[0], 'page'):
  198.                 $page $pageRepository->find($url[1]);
  199.                 if (null === $page) {
  200.                     $page $pageRepository->findOneBy(['slug' => $url[1]]);
  201.                 }
  202.                 if (null !== $page->getPoleId()) {
  203.                     $urlPole $this->generateUrl('page_front_slug', [
  204.                         'slug' => $page->getPoleId()->getUrlPole()->getSlug(),
  205.                     ]);
  206.                     $filariane = [
  207.                         ['pole' => $page->getPoleId()->getName(), 'url' => $urlPole],
  208.                         ['titre' => 'Présentation'],
  209.                     ];
  210.                 } else {
  211.                     $filariane = [
  212.                         ['pole' => $page->getTitre()],
  213.                     ];
  214.                     // $filariane = [$page->getTitre()];
  215.                 }
  216.                 break;
  217.             case str_contains($url[0], 'partenaire'):
  218.                 $filariane = [
  219.                     ['pole' => 'Partenaires'],
  220.                 ];
  221.                 break;
  222.             case str_contains($url[0], 'contact'):
  223.                 $filariane = [
  224.                     ['pole' => 'Contact'],
  225.                 ];
  226.                 break;
  227.             case str_contains($url[0], 'simuler'):
  228.                 $filariane = [
  229.                     ['pole' => 'Nos tarifs'],
  230.                 ];
  231.                 break;
  232.         }
  233.         return $this->render('front/includes/_breadcrumb.html.twig', [
  234.             'filariane' => $filariane,
  235.         ]);
  236.     }
  237. }