src/Controller/sitemapController.php line 25

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Contracts\HttpClient\HttpClientInterface;
  4. use Symfony\Component\HttpFoundation\Request;
  5. use Symfony\Component\HttpFoundation\Response;
  6. use Symfony\Component\Routing\Annotation\Route;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use App\Service\PublicFunction;
  9. class sitemapController extends AbstractController
  10. {
  11.     private $client;
  12.     public function __construct(HttpClientInterface $client)
  13.     {
  14.         $this->client $client;
  15.     }
  16.     
  17.         /**
  18.      * @Route("/sitemap.xml",name="sitemap", defaults={"_format"="xml"} , methods={"GET","HEAD"})
  19.      */
  20.     public function rendersitemap(Request $request,PublicFunction $publicFunction): Response
  21.     {   
  22.         $responses $this->client->request(
  23.             'GET',
  24.             "{$_ENV['BASE_API']}articles/publish"
  25.         );
  26.         $articles $responses->toArray()["articles"];
  27.         $responses $this->client->request(
  28.             'GET',
  29.             "{$_ENV['BASE_API']}sitemapcentres"
  30.         );
  31.         $centres $responses->toArray();
  32.         $responses $this->client->request(
  33.             'GET',
  34.             "{$_ENV['BASE_API']}sitemapdepartement"
  35.         );
  36.         $departements $responses->toArray();
  37.         $responses $this->client->request(
  38.             'GET',
  39.             "{$_ENV['BASE_API']}sitemapdepartement"
  40.         );
  41.         $departements $responses->toArray();
  42.         $responses $this->client->request(
  43.             'GET',
  44.             "{$_ENV['BASE_API']}sitemapville"
  45.         );
  46.         $villes $responses->toArray();
  47.        
  48.         $hostname $request->getSchemeAndHttpHost();
  49.         
  50.         $urls = [];
  51.         $urls[] = ['loc' => $this->generateUrl('app_accueil_renderaccueilpage')]; 
  52.         $urls[] = ['loc' => $this->generateUrl('app_pro_renderaccueilpropage')];
  53.         $urls[] = ['loc' => $this->generateUrl('app_ensavoirplus_renderensavoirplusfctoreillepage')]; 
  54.         $urls[] = ['loc' => $this->generateUrl('app_ensavoirplus_renderensavoirpluspertepage')];
  55.         $urls[] = ['loc' => $this->generateUrl('app_ensavoirplus_renderensavoirplusnuisancessonorespage')]; 
  56.         $urls[] = ['loc' => $this->generateUrl('app_ensavoirplus_renderensavoirplusacouphenepage')];
  57.         $urls[] = ['loc' => $this->generateUrl('app_ensavoirplus_renderensavoirplusreformepage')]; 
  58.         $urls[] = ['loc' => $this->generateUrl('app_ensavoirplus_renderensavoirpluscontoursoreillepage')];
  59.         $urls[] = ['loc' => $this->generateUrl('app_ensavoirplus_renderensavoirplusintraauriculairespage')];
  60.         $urls[] = ['loc' => $this->generateUrl('app_ensavoirplus_renderensavoirplusaccessoiresauditifspage')]; 
  61.         $urls[] = ['loc' => $this->generateUrl('app_pro_renderqsnpropage')];
  62.         $urls[] = ['loc' => $this->generateUrl('app_pro_renderavantagespropage')];
  63.         $urls[] = ['loc' => $this->generateUrl('app_pro_rendernostarifspropage')];
  64.         $urls[] = ['loc' => $this->generateUrl('app_faq_renderfaqpropage')];
  65.         $urls[] = ['loc' => $this->generateUrl('app_faq_renderfaqpage')];
  66.        
  67.         $urls[] = ['loc' => $this->generateUrl('app_actualite_renderactualitepage')];
  68.         $urls[] = ['loc' => $this->generateUrl('app_actualite_renderactualitepropage')];
  69.         foreach ($articles as $article){
  70.             $dateformat explode("T"$article['date']);
  71.             $dateok$dateformat[0];
  72.             if ( $article['isPro'] == 1){
  73.                 $urls[]=[
  74.                     'loc' => '/actualite/'.$article['id'],
  75.                     'lastmod' => $dateok
  76.                 ];
  77.             } else{
  78.                 $urls[]=[
  79.                     'loc' => '/pro/actualite/'.$article['id'],
  80.                     'lastmod' => $dateok
  81.                 ];
  82.             }
  83.         }
  84.         foreach ($centres as $centre){
  85.                 $urls[]=[
  86.                     'loc' => '/centre/'.$publicFunction->Slug($centre['name']).'/'.$centre['id'],
  87.                     
  88.                 ];
  89.         }
  90.         foreach ($departements as $departement){
  91.             $urls[]=[
  92.                 'loc' => '/audioprothesiste/'.$departement['slug'],
  93.                 
  94.             ];
  95.         }
  96.         foreach ($villes as $ville){
  97.             $urls[]=[
  98.                 'loc' => '/audioprothesiste/'.$ville['departement'].'/'.$ville['slug'],
  99.                 
  100.             ];
  101.         }
  102.         $urls[] = ['loc' => $this->generateUrl('app_test_rendertestaccueilpage')];
  103.         $urls[] = ['loc' => $this->generateUrl('app_test_rendertestpage')];
  104.         $urls[] = ['loc' => $this->generateUrl('app_pro_renderinscriptionpropage')];
  105.         $urls[] = ['loc' => $this->generateUrl('app_recherche_renderrecherchepage')];
  106.         $response= new Response(
  107.             $this->renderView('/sitemap.html.twig',[
  108.                 'urls' => $urls,
  109.                 'hostname' => $hostname,
  110.             ]),
  111.             200
  112.         );
  113.         $response->headers->set('Content-type','text/xml');
  114.         return $response;
  115.         
  116.     }
  117. }
  118. ?>