application\bootstrap.php :
Route::set('sitemap_xml', 'sitemap.xml',
array())
->defaults(array(
'controller' => 'sitemap',
'action' => 'index'
));
application\controller\sitemap.php :
<?php defined('SYSPATH') or die('No direct script access.');
class Controller_Sitemap extends Controller {
public function action_index()
{
$oDOMDocument = new DOMDocument('1.0', 'UTF-8');
$urlset = $oDOMDocument->createElement('urlset');
$urlset->setAttribute('xmlns', 'http://www.sitemaps.org/schemas/sitemap/0.9');
$oDOMDocument->appendChild($urlset);
// Static Pages
$aItems = array(
array('loc' => '', 'lastmod' => date ("Y-m-d"), 'changefreq' => 'weekly', 'priority' => '1.0'),
array('loc' => 'contact', 'lastmod' => date ("Y-m-d", filemtime('application/views/content/contact.tpl')), 'changefreq' => 'never', 'priority' => '0.5')
);
// @todo Dynamic Pages
foreach ($aItems as $item)
{
$url = $oDOMDocument->createElement('url');
$loc = $oDOMDocument->createElement('loc', Url::Site().$item['loc']);
$url->appendChild($loc);
if ( ! empty($item['lastmod']))
{
$lastmod = $oDOMDocument->createElement('lastmod', $item['lastmod']);
$url->appendChild($lastmod);
}
if ( ! empty($item['changefreq']))
{
$changefreq = $oDOMDocument->createElement('changefreq', $item['changefreq']);
$url->appendChild($changefreq);
}
if ( ! empty($item['priority']))
{
$priority = $oDOMDocument->createElement('priority', $item['priority']);
$url->appendChild($priority);
}
$urlset->appendChild($url);
}
$this->request->headers['Content-Type'] = 'application/xml';
// $this->response->headers('Content-Type', 'application/xml');
echo $oDOMDocument->saveXML();
}
}
Zie ook : Sitemap XML