<?php
namespace App\Controller;
use Symfony\Contracts\HttpClient\HttpClientInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use App\Service\PublicFunction;
class sitemapController extends AbstractController
{
private $client;
public function __construct(HttpClientInterface $client)
{
$this->client = $client;
}
/**
* @Route("/sitemap.xml",name="sitemap", defaults={"_format"="xml"} , methods={"GET","HEAD"})
*/
public function rendersitemap(Request $request,PublicFunction $publicFunction): Response
{
$responses = $this->client->request(
'GET',
"{$_ENV['BASE_API']}articles/publish"
);
$articles = $responses->toArray()["articles"];
$responses = $this->client->request(
'GET',
"{$_ENV['BASE_API']}sitemapcentres"
);
$centres = $responses->toArray();
$responses = $this->client->request(
'GET',
"{$_ENV['BASE_API']}sitemapdepartement"
);
$departements = $responses->toArray();
$responses = $this->client->request(
'GET',
"{$_ENV['BASE_API']}sitemapdepartement"
);
$departements = $responses->toArray();
$responses = $this->client->request(
'GET',
"{$_ENV['BASE_API']}sitemapville"
);
$villes = $responses->toArray();
$hostname = $request->getSchemeAndHttpHost();
$urls = [];
$urls[] = ['loc' => $this->generateUrl('app_accueil_renderaccueilpage')];
$urls[] = ['loc' => $this->generateUrl('app_pro_renderaccueilpropage')];
$urls[] = ['loc' => $this->generateUrl('app_ensavoirplus_renderensavoirplusfctoreillepage')];
$urls[] = ['loc' => $this->generateUrl('app_ensavoirplus_renderensavoirpluspertepage')];
$urls[] = ['loc' => $this->generateUrl('app_ensavoirplus_renderensavoirplusnuisancessonorespage')];
$urls[] = ['loc' => $this->generateUrl('app_ensavoirplus_renderensavoirplusacouphenepage')];
$urls[] = ['loc' => $this->generateUrl('app_ensavoirplus_renderensavoirplusreformepage')];
$urls[] = ['loc' => $this->generateUrl('app_ensavoirplus_renderensavoirpluscontoursoreillepage')];
$urls[] = ['loc' => $this->generateUrl('app_ensavoirplus_renderensavoirplusintraauriculairespage')];
$urls[] = ['loc' => $this->generateUrl('app_ensavoirplus_renderensavoirplusaccessoiresauditifspage')];
$urls[] = ['loc' => $this->generateUrl('app_pro_renderqsnpropage')];
$urls[] = ['loc' => $this->generateUrl('app_pro_renderavantagespropage')];
$urls[] = ['loc' => $this->generateUrl('app_pro_rendernostarifspropage')];
$urls[] = ['loc' => $this->generateUrl('app_faq_renderfaqpropage')];
$urls[] = ['loc' => $this->generateUrl('app_faq_renderfaqpage')];
$urls[] = ['loc' => $this->generateUrl('app_actualite_renderactualitepage')];
$urls[] = ['loc' => $this->generateUrl('app_actualite_renderactualitepropage')];
foreach ($articles as $article){
$dateformat = explode("T", $article['date']);
$dateok= $dateformat[0];
if ( $article['isPro'] == 1){
$urls[]=[
'loc' => '/actualite/'.$article['id'],
'lastmod' => $dateok
];
} else{
$urls[]=[
'loc' => '/pro/actualite/'.$article['id'],
'lastmod' => $dateok
];
}
}
foreach ($centres as $centre){
$urls[]=[
'loc' => '/centre/'.$publicFunction->Slug($centre['name']).'/'.$centre['id'],
];
}
foreach ($departements as $departement){
$urls[]=[
'loc' => '/audioprothesiste/'.$departement['slug'],
];
}
foreach ($villes as $ville){
$urls[]=[
'loc' => '/audioprothesiste/'.$ville['departement'].'/'.$ville['slug'],
];
}
$urls[] = ['loc' => $this->generateUrl('app_test_rendertestaccueilpage')];
$urls[] = ['loc' => $this->generateUrl('app_test_rendertestpage')];
$urls[] = ['loc' => $this->generateUrl('app_pro_renderinscriptionpropage')];
$urls[] = ['loc' => $this->generateUrl('app_recherche_renderrecherchepage')];
$response= new Response(
$this->renderView('/sitemap.html.twig',[
'urls' => $urls,
'hostname' => $hostname,
]),
200
);
$response->headers->set('Content-type','text/xml');
return $response;
}
}
?>