deblan.io-murph/core/Controller/Site/SitemapController.php
Simon Vieille 40ed84dea3 init murph
Signed-off-by: Simon Vieille <simon@deblan.fr>
2021-03-24 19:10:26 +01:00

41 lines
1.1 KiB
PHP

<?php
namespace App\Core\Controller\Site;
use App\Core\Repository\Site\NavigationRepositoryQuery;
use App\Core\Sitemap\SitemapBuilder;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class SitemapController extends AbstractController
{
/**
* @Route("/sitemap.xml", name="sitemap")
*/
public function sitemap(Request $request, NavigationRepositoryQuery $navigationRepositoryQuery, SitemapBuilder $builder): Response
{
$navigations = $navigationRepositoryQuery
->whereDomain($request->getHost())
->find()
;
$items = [];
foreach ($navigations as $navigation) {
$items = array_merge(
$items,
$builder->build($navigation)
);
}
$response = new Response();
$response->headers->set('Content-Type', 'text/xml');
return $this->render('@Core/site/sitemap/sitemap.xml.twig', [
'items' => $items,
], $response);
}
}