<?php
namespace App\Services;
use App\Entity\CoachingSession;
use App\Entity\Elearning;
use App\Entity\LiveSession;
use App\Entity\Post;
use App\Entity\StageAcademy;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\Routing\RouterInterface;
class PagesManager
{
/** @var RouterInterface */
private $router;
/** @var EntityManagerInterface */
private $em;
public function __construct(RouterInterface $router, EntityManagerInterface $em)
{
$this->router = $router;
$this->em = $em;
}
public function getPageBlocs(Post $post): array
{
$blocs = [];
foreach ($post->getBlocs() as $bloc) {
$blocs[$bloc->getSlug()] = $bloc;
}
return $blocs;
}
public function siteMapGenerator(): array
{
// On initialise un tableau pour lister les URLs
$urls = [];
// On ajoute les URLs "statiques"
$urls[] = ['loc' => $this->router->generate('homepage')];
$urls[] = ['loc' => $this->router->generate('page_foire_aux_questions')];
$urls[] = ['loc' => $this->router->generate('page_mentions_legales')];
$urls[] = ['loc' => $this->router->generate('page_vos_donnes_personnelles')];
$urls[] = ['loc' => $this->router->generate('page_politique_cookies')];
$urls[] = ['loc' => $this->router->generate('page_blog')];
$urls[] = ['loc' => $this->router->generate('page_contact')];
$urls[] = ['loc' => $this->router->generate('page_cours_anglais')];
$urls[] = ['loc' => $this->router->generate('page_cours_francais')];
$urls[] = ['loc' => $this->router->generate('page_elearning')];
$urls[] = ['loc' => $this->router->generate('page_abonnnements_elearning')];
$urls[] = ['loc' => $this->router->generate('page_nos_formations_coaching')];
$urls[] = ['loc' => $this->router->generate('page_nos_formations_live')];
$urls[] = ['loc' => $this->router->generate('page_stage_academie')];
// On ajoute les URLs dynamiques des articles dans le tableau
foreach ($this->em->getRepository(Post::class)->findByType('post') as $article) {
$images = [
'loc' => '/uploads/' . $article->getImage(), // URL to image
'title' => $article->getTitle() // Optional, text describing the image
];
$urls[] = [
'loc' => $this->router->generate('page_blog_single', [
'slug' => $article->getSlug(),
]),
'lastmod' => $article->getUpdatedAt()->format('Y-m-d'),
'image' => $images
];
}
// On ajoute les URLs dynamiques des articles dans le tableau
foreach ($this->em->getRepository(StageAcademy::class)->findAll() as $article) {
$images = [
'loc' => '/uploads/' . $article->getImage(), // URL to image
'title' => $article->getTitle() // Optional, text describing the image
];
$urls[] = [
'loc' => $this->router->generate('page_stage_academie_details', [
'slug' => $article->getSlug(),
]),
'image' => $images
];
}
// On ajoute les URLs dynamiques des articles dans le tableau
foreach ($this->em->getRepository(Elearning::class)->findAll() as $article) {
$images = [
'loc' => '/uploads/' . $article->getImage(), // URL to image
'title' => $article->getTitle() // Optional, text describing the image
];
$urls[] = [
'loc' => $this->router->generate('page_elearning_single', [
'slug' => $article->getSlug(),
]),
'image' => $images
];
}
// On ajoute les URLs dynamiques des articles dans le tableau
foreach ($this->em->getRepository(LiveSession::class)->findAll() as $article) {
$images = [
'loc' => '/uploads/' . $article->getImage(), // URL to image
'title' => $article->getTitle() // Optional, text describing the image
];
$urls[] = [
'loc' => $this->router->generate('page_formation_live_single', [
'slug' => $article->getSlug(),
]),
'image' => $images
];
}
// On ajoute les URLs dynamiques des articles dans le tableau
foreach ($this->em->getRepository(CoachingSession::class)->findAll() as $article) {
$images = [
'loc' => '/uploads/' . $article->getImage(), // URL to image
'title' => $article->getTitle() // Optional, text describing the image
];
$urls[] = [
'loc' => $this->router->generate('page_formation_coaching_single', [
'slug' => $article->getSlug(),
]),
'image' => $images
];
}
return $urls;
}
}