Typesetter/include/special/Map.php

92 lines
2 KiB
PHP
Raw Normal View History

2021-09-08 19:52:21 +02:00
<?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();
}
}