Собственно все просто, пример Карты сайта для CMS DLE.
В .htaccess.
Добавляем где угодно, но лучше в конце файла.
# Карта сайта
RewriteRule ^sitemap(/?)+$ /?do=sitemap
В engine.php. Добавляем, например после
case "addnews" :
include ENGINE_DIR.'/modules/addnews.php';
break;
следующий код
case "sitemap" :
include ENGINE_DIR.'/modules/sitemap.php';
break;
Создаём файл sitemap.php, кидаем его в папку с модулями.
Примерное содержание файла (дизайн настраивайте сами)
<?php
if(!defined('DATALIFEENGINE'))
{
die("Hacking attempt!");
}
$map = dle_cache("sitemap", $config['skin']);
if(!$map) {
$map = "";
$result = $db->query("SELECT id,name,alt_name FROM dle_category ORDER BY posi ASC");
while($row = $db->get_row($result)){
$map .= "<ul style='padding:20px;font-size:18px;'><a style='font-weight: bold;' href='".$config['http_home_url']."category/${row[alt_name]}/' style='font-size:10pt;font-weight:bold;'>$row[name]</a>";
$cat = intval($row[id]);
$result2 = $db->query("SELECT id,autor,date,title,alt_name,comm_num,rating,news_read FROM dle_post WHERE category = '$cat' ORDER BY title ASC");
while ($row2 = $db->get_row($result2)){
$map .= "<li style='padding:2px;font-size:11px;' valign='absmiddle'> <a style='font-weight: bold;' href="/.$config['http_home_url'].str_replace("-","/",substr($row2['date'],0,10))."/".$row2['alt_name'].".html>".stripslashes($row2[title])."</a> | $row2[autor] | Прочитано: $row2[news_read] | Комментариев: $row2[comm_num]";
}
$map .= "</ul>";
}
$result = $db->query("SELECT id, name, descr FROM dle_static ORDER BY name ASC");
while($row = $db->get_row($result)){
$map .= "<span style='padding-left:20px;padding-bottom:10px;font-size:16px;'><a style='font-weight: bold;' href='".$config['http_home_url']."static/{$row[name]}.html' style='font-size:10pt;font-weight:bold;'>$row[descr]</a></span><p>";
}
create_cache("sitemap", $map);
}
$tpl->load_template('static.tpl');
$tpl->set('{description}', "Карта сайта");
$tpl->set('{static}', $map);
$tpl->compile('content');
$tpl->clear();
?>
Для вывода использован шаблон static.tpl, как наиболее пригодный.
Можете сами задать свой.