src/Services/PagesManager.php line 120

Open in your IDE?
  1. <?php
  2. namespace App\Services;
  3. use App\Entity\CoachingSession;
  4. use App\Entity\Elearning;
  5. use App\Entity\LiveSession;
  6. use App\Entity\Post;
  7. use App\Entity\StageAcademy;
  8. use Doctrine\ORM\EntityManagerInterface;
  9. use Symfony\Component\Routing\RouterInterface;
  10. class PagesManager
  11. {
  12.     /** @var RouterInterface */
  13.     private $router;
  14.     /** @var EntityManagerInterface */
  15.     private $em;
  16.     public function __construct(RouterInterface $routerEntityManagerInterface $em)
  17.     {
  18.         $this->router $router;
  19.         $this->em $em;
  20.     }
  21.     public function getPageBlocs(Post $post): array
  22.     {
  23.         $blocs = [];
  24.         foreach ($post->getBlocs() as $bloc) {
  25.             $blocs[$bloc->getSlug()] = $bloc;
  26.         }
  27.         return $blocs;
  28.     }
  29.     public function siteMapGenerator(): array
  30.     {
  31.         // On initialise un tableau pour lister les URLs
  32.         $urls = [];
  33.         // On ajoute les URLs "statiques"
  34.         $urls[] = ['loc' => $this->router->generate('homepage')];
  35.         $urls[] = ['loc' => $this->router->generate('page_foire_aux_questions')];
  36.         $urls[] = ['loc' => $this->router->generate('page_mentions_legales')];
  37.         $urls[] = ['loc' => $this->router->generate('page_vos_donnes_personnelles')];
  38.         $urls[] = ['loc' => $this->router->generate('page_politique_cookies')];
  39.         $urls[] = ['loc' => $this->router->generate('page_blog')];
  40.         $urls[] = ['loc' => $this->router->generate('page_contact')];
  41.         $urls[] = ['loc' => $this->router->generate('page_cours_anglais')];
  42.         $urls[] = ['loc' => $this->router->generate('page_cours_francais')];
  43.         $urls[] = ['loc' => $this->router->generate('page_elearning')];
  44.         $urls[] = ['loc' => $this->router->generate('page_abonnnements_elearning')];
  45.         $urls[] = ['loc' => $this->router->generate('page_nos_formations_coaching')];
  46.         $urls[] = ['loc' => $this->router->generate('page_nos_formations_live')];
  47.         $urls[] = ['loc' => $this->router->generate('page_stage_academie')];
  48.         // On ajoute les URLs dynamiques des articles dans le tableau
  49.         foreach ($this->em->getRepository(Post::class)->findByType('post') as $article) {
  50.             $images = [
  51.                 'loc' => '/uploads/' $article->getImage(), // URL to image
  52.                 'title' => $article->getTitle()    // Optional, text describing the image
  53.             ];
  54.             $urls[] = [
  55.                 'loc' => $this->router->generate('page_blog_single', [
  56.                     'slug' => $article->getSlug(),
  57.                 ]),
  58.                 'lastmod' => $article->getUpdatedAt()->format('Y-m-d'),
  59.                 'image' => $images
  60.             ];
  61.         }
  62.         // On ajoute les URLs dynamiques des articles dans le tableau
  63.         foreach ($this->em->getRepository(StageAcademy::class)->findAll() as $article) {
  64.             $images = [
  65.                 'loc' => '/uploads/' $article->getImage(), // URL to image
  66.                 'title' => $article->getTitle()    // Optional, text describing the image
  67.             ];
  68.             $urls[] = [
  69.                 'loc' => $this->router->generate('page_stage_academie_details', [
  70.                     'slug' => $article->getSlug(),
  71.                 ]),
  72.                 'image' => $images
  73.             ];
  74.         }
  75.         // On ajoute les URLs dynamiques des articles dans le tableau
  76.         foreach ($this->em->getRepository(Elearning::class)->findAll() as $article) {
  77.             $images = [
  78.                 'loc' => '/uploads/' $article->getImage(), // URL to image
  79.                 'title' => $article->getTitle()    // Optional, text describing the image
  80.             ];
  81.             $urls[] = [
  82.                 'loc' => $this->router->generate('page_elearning_single', [
  83.                     'slug' => $article->getSlug(),
  84.                 ]),
  85.                 'image' => $images
  86.             ];
  87.         }
  88.         // On ajoute les URLs dynamiques des articles dans le tableau
  89.         foreach ($this->em->getRepository(LiveSession::class)->findAll() as $article) {
  90.             $images = [
  91.                 'loc' => '/uploads/' $article->getImage(), // URL to image
  92.                 'title' => $article->getTitle()    // Optional, text describing the image
  93.             ];
  94.             $urls[] = [
  95.                 'loc' => $this->router->generate('page_formation_live_single', [
  96.                     'slug' => $article->getSlug(),
  97.                 ]),
  98.                 'image' => $images
  99.             ];
  100.         }
  101.         // On ajoute les URLs dynamiques des articles dans le tableau
  102.         foreach ($this->em->getRepository(CoachingSession::class)->findAll() as $article) {
  103.             $images = [
  104.                 'loc' => '/uploads/' $article->getImage(), // URL to image
  105.                 'title' => $article->getTitle()    // Optional, text describing the image
  106.             ];
  107.             $urls[] = [
  108.                 'loc' => $this->router->generate('page_formation_coaching_single', [
  109.                     'slug' => $article->getSlug(),
  110.                 ]),
  111.                 'image' => $images
  112.             ];
  113.         }
  114.         return $urls;
  115.     }
  116. }