header('Content-type: application/xml; charset="utf-8"',true);
include dirname(__FILE__).'/../../../cfg/loader.php';
require_once DOCUMENT_ROOT.CMS_DIR.'/mkl.page.php';
$lang = 'sk';
$rootUrl = WEB_ROOT;
$xml = '<'.'?xml version="1.0" encoding="UTF-8"?'.'>
<'.'?xml-stylesheet type="text/xsl" href="'.URL_ROOT.MODULE_DIR.'/sitemap/xml-sitemap.xsl"?'.'>
';
// LOAD PAGE STRUCTURE
$pages = new mkl_page();
$modules = array();
foreach ($pages->pages as $page) {
if ( $page['state'] >= 1 && $page['redirect'] == '' && ($page['allow_type'] == 0 || $page['allow_type'] == -1) ) {
$p = 0.5;
if ($page['url'] == '') {
$p = 1.0;
} else if ($page['id_parent'] == 0 && $page['state'] == 1) {
$p = 0.90;
} else if ($page['id_parent'] == 0 && $page['state'] == 2) {
$p = 0.95;
} else if ($page['state'] == 1) {
$p = 0.85;
} else if ($page['state'] == 2) {
$p = 0.80;
} else if (floor($page['id_module']/10) == 4) {
$p = 0.1;
} else {
$p = 0.75;
}
if ($page['module_code'] == 'text') {
$change = 'weekly';
} else if (floor($page['id_module']/10) == 4) {
$change = 'monthly';
} else {
$change = 'hourly';
}
$xml .= makeUrlTag($pages->_link($page['url']), '', $change, $p);
}
}
// LOAD DATA FROM MODULES
foreach ($pages->module as $mod) {
if (method_exists($mod, 'sitemap')) {
$urls = $mod->sitemap();
if (count($urls) > 0) foreach ($urls as $url) {
$xml .= makeUrlTag($pages->_link($url['url']), $url['updated'], $url['change'], $url['priority']);
}
}
}
$xml .= '
';
//$f = fopen(dirname(__FILE__)."/sitemap.xml", "w");
//fwrite($f, $xml);
//fclose($f);
echo $xml;
function makeUrlTag($loc, $mod='', $change='daily', $p=0.5) {
global $rootUrl;
if (trim($mod) == '') {
$mod = date('Y-m-d');
} else {
$mod = date('Y-m-d', strtotime($mod));
}
return '
'.$rootUrl.$loc.'
'.$mod.'
'.$change.'
'.str_replace(',', '.', $p).'
';
}
/*
function makeUrlString ($urlString) {
return htmlentities($urlString, ENT_QUOTES, 'UTF-8');
}
function makeIso8601TimeStamp ($dateTime) {
if (!$dateTime) {
$dateTime = date('Y-m-d H:i:s');
}
if (is_numeric(substr($dateTime, 11, 1))) {
$isoTS = substr($dateTime, 0, 10) ."T"
.substr($dateTime, 11, 8) ."+00:00";
}
else {
$isoTS = substr($dateTime, 0, 10);
}
return $isoTS;
}
function makeUrlTag ($url, $modifiedDateTime, $changeFrequency, $priority) {
GLOBAL $newLine;
GLOBAL $indent;
GLOBAL $isoLastModifiedSite;
$urlOpen = "$indent$newLine";
$urlValue = "";
$urlClose = "$indent$newLine";
$locOpen = "$indent$indent";
$locValue = "";
$locClose = "$newLine";
$lastmodOpen = "$indent$indent";
$lastmodValue = "";
$lastmodClose = "$newLine";
$changefreqOpen = "$indent$indent";
$changefreqValue = "";
$changefreqClose = "$newLine";
$priorityOpen = "$indent$indent";
$priorityValue = "";
$priorityClose = "$newLine";
$urlTag = $urlOpen;
$urlValue = $locOpen .makeUrlString("$url") .$locClose;
if ($modifiedDateTime) {
$urlValue .= $lastmodOpen .makeIso8601TimeStamp($modifiedDateTime) .$lastmodClose;
if (!$isoLastModifiedSite) { // last modification of web site
$isoLastModifiedSite = makeIso8601TimeStamp($modifiedDateTime);
}
}
if ($changeFrequency) {
$urlValue .= $changefreqOpen .$changeFrequency .$changefreqClose;
}
if ($priority) {
$urlValue .= $priorityOpen .$priority .$priorityClose;
}
$urlTag .= $urlValue;
$urlTag .= $urlClose;
return $urlTag;
}
*/
?>