91 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			91 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();
 | 
						|
	}
 | 
						|
}
 |