Problem s vytvorenim sitemap
- Tomas8698
- Člen | 109
Dobrý deň,
Chcel by som sa spýtať, ako spraviť Sitemap, zatiaľ som to nerobil našiel
som len na nete vzor a podľa neho to spravil. Chcel by som sa spýtať aj ako
overím že funguje a aj ci na to idem správne. Za pomoc ďakujem.
Môj sitemap vyzerá takto:
<?php
<?xml version="1.0" encoding="UTF-8" ?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
{foreach $langs as $lang}
<url>
<loc>{link Homepage:default $lang }</loc>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
</url>
{/foreach }
{foreach $articles as $article}
<url>
<loc>{link Homepage:default $article['urlseo'] ,$article['locale']}</loc>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
{/foreach }
</urlset>
?>
a v presenteri ho mam nastaveny takto:
<?php
public function renderSitemap(): void
{
$articles = $this->database->table('articles')->fetchAll();
//pouziji jako hlavni sablonu prazdnou sablonu
$this->setLayout('empty');
// zajisti genrovani ablolutnich URL
$this->absoluteUrls = true;
$this->template->articles = $articles;
$this->template->langs=$this->langs;
$this->getHttpResponse()->setContentType('application/xml');
//bdump($articles);
}
?>
A router vyzera takto :
<?php
public static function createRouter(): RouteList
{
$router = new RouteList;
$router->addRoute('', "Homepage:index");
$router->addRoute('sitemap.xml', 'Article:sitemap');
$router->addRoute('/<locale= cs|en>/<urlseo>', 'Article:default');
$router->addRoute('[<locale= cs|en>/]<presenter>/<action>[/<id>]', "Homepage:default");
return $router;
}
?>
Pridam aj zdrojovy kod stranky pre lepsi prehlad https://github.com/…o/tree/Tomas