92 lines
2 KiB
PHP
92 lines
2 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace gp\special;
|
||
|
|
||
|
defined('is_running') or die('Not an entry point...');
|
||
|
|
||
|
class Map extends \gp\special\Base{
|
||
|
|
||
|
function __construct($args){
|
||
|
global $langmessage, $config;
|
||
|
|
||
|
parent::__construct($args);
|
||
|
|
||
|
/*
|
||
|
An xml site map will not show any of the pages from dynamic add-ons
|
||
|
... which is precisely what the regular sitemap shows
|
||
|
*/
|
||
|
|
||
|
if( isset($_GET['xml']) ){
|
||
|
$this->xml();
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
$this->MultiSiteData();
|
||
|
|
||
|
echo '<div class="GPAREA filetype-special_sitemap">';
|
||
|
echo '<div class="sitemap_xml">';
|
||
|
echo \gp\tool::Link('Special_Site_Map','XML','xml');
|
||
|
echo '</div>';
|
||
|
echo '<h2>';
|
||
|
echo \gp\tool\Output::ReturnText('site_map');
|
||
|
echo '</h2>';
|
||
|
|
||
|
\gp\tool\Output::GetFullMenu();
|
||
|
|
||
|
echo '</div>';
|
||
|
|
||
|
}
|
||
|
|
||
|
function MultiSiteData(){
|
||
|
global $config;
|
||
|
|
||
|
$this->page->head .= '<meta name="mdu" content="'.substr(md5($config['gpuniq']),0,20).'" />';
|
||
|
|
||
|
if( defined('multi_site_unique') ){
|
||
|
$this->page->head .= '<meta name="multi_site_unique" content="'.multi_site_unique.'" />';
|
||
|
}
|
||
|
if( defined('service_provider_id') && is_numeric(service_provider_id) ){
|
||
|
$this->page->head .= '<meta name="service_provider_id" content="'.service_provider_id.'" />';
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
/*
|
||
|
<url>
|
||
|
<loc>http://www.example.com/</loc>
|
||
|
<lastmod>2005-01-01</lastmod>
|
||
|
<changefreq>monthly</changefreq>
|
||
|
<priority>0.8</priority>
|
||
|
</url>
|
||
|
*/
|
||
|
function xml(){
|
||
|
global $gp_menu, $gp_titles;
|
||
|
|
||
|
header('Content-Type: text/xml; charset=UTF-8');
|
||
|
echo '<?xml version="1.0" encoding="UTF-8"?>';
|
||
|
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
|
||
|
|
||
|
|
||
|
foreach($gp_menu as $key => $info){
|
||
|
$title = \gp\tool::IndexToTitle($key);
|
||
|
$gptitle = $gp_titles[$key];
|
||
|
|
||
|
if( isset($info['level'])
|
||
|
&& !isset( $gptitle['vis'])
|
||
|
&& !( isset($gptitle['rel']) && strpos($gptitle['rel'], 'noindex') !== false ) ) {
|
||
|
echo "\n";
|
||
|
echo '<url>';
|
||
|
echo '<loc>';
|
||
|
echo isset($info['url']) ? $info['url'] : \gp\tool::AbsoluteUrl($title,'',true,'',true);
|
||
|
echo '</loc>';
|
||
|
echo '</url>';
|
||
|
}
|
||
|
}
|
||
|
|
||
|
echo '</urlset>';
|
||
|
|
||
|
|
||
|
die();
|
||
|
}
|
||
|
}
|