[Continuing]
function makeAddonSiteMap($site_map) {
global $config, $dataDir;
echo '<ul>';
$prev_level = 0;
$i = 0;
foreach ($site_map as $link){
$level = $link['level'];
$title = $link['title'];
$label = $link['label'];
if ($level > $prev_level) {
$i = 0;
echo '<ul>';
} elseif ($level < $prev_level) {
$i = 0;
echo '</ul>';
}
$class = 'class="li_'.$i.'"';
echo '<li '.$class.'>'.common::Link($title, $label, '').'</li>';
$prev_level = $level;
$i++;
}
echo '</ul>';
}
function makeAddonSiteMapXml($site_map) {
foreach ($site_map as $link){
echo "\n";
echo '<url>';
echo '<loc>';
echo 'http://';
echo $_SERVER['SERVER_NAME'];
echo common::GetUrl($link['title']);
echo '</loc>';
echo '</url>';
}
}
} // class
A "Site Map"-ready plugin should have a Site_Map.php file at the plugin root folder.
This file will return an array of data to be used by both the html and the xml Site Maps.
For instance (dummy file used for testing):
<?php
$site_map = array();
$site_map[0]['label'] = 'My Label 0';
$site_map[0]['title'] = 'My_Title_0';
$site_map[0]['level'] = 0;
$site_map[1]['label'] = 'My Label 1';
$site_map[1]['title'] = 'My_Title_1';
$site_map[1]['level'] = 1;
$site_map[2]['label'] = 'My Label 2';
$site_map[2]['title'] = 'My_Title_2';
$site_map[2]['level'] = 0;
return $site_map;
Hope you like the idea.
Edited: 9 years ago