Browse Source

implement sitemap

main
ghost 1 year ago
parent
commit
891868eccd
  1. 35
      src/Controller/TorrentController.php
  2. 15
      templates/default/torrent/sitemap.xml.twig

35
src/Controller/TorrentController.php

@ -1884,6 +1884,41 @@ class TorrentController extends AbstractController
return new Response(); // @TODO return new Response(); // @TODO
} }
#[Route(
'/sitemap.xml',
methods:
[
'GET'
]
)]
public function sitemap(
TorrentService $torrentService
): Response
{
$locale = $this->getParameter('app.locale');
$locales = explode('|', $this->getParameter('app.locales'));
$response = new Response();
$response->headers->set('Content-Type', 'text/xml');
return $this->render(
'default/torrent/sitemap.xml.twig',
[
'locale' => $locale,
'locales' => $locales,
'torrents' => $torrentService->findTorrents(
[], // without keywords filter
$locales, // all sensitive levels
null, // all sensitive levels
true, // approved only
1000, // @TODO limit
0 // offset
)
],
$response
);
}
private function initUser( private function initUser(
Request $request, Request $request,
UserService $userService, UserService $userService,

15
templates/default/torrent/sitemap.xml.twig

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
{% for torrent in torrents %}
<url>
<lastmod>{{ torrent.added | date('Y-m-d') }}</lastmod>
{% for code in locales %}
{% if code == locale %}
<loc>{{ url('torrent_info', { '_locale': code , torrentId : torrent.id }) }}</loc>
{% else %}
<xhtml:link rel="alternate" hreflang="{{ code }}" href="{{ url('torrent_info', { '_locale': code , torrentId : torrent.id }) }}" />
{% endif %}
{% endfor %}
</url>
{% endfor %}
</urlset>
Loading…
Cancel
Save