Differences

This shows you the differences between two versions of the page.

english:other-enhancements:sitemap-xml [2009/05/19 01:12]
Knut Heermann (flip-flop)
english:other-enhancements:sitemap-xml [2018/06/03 18:09] (current)
Line 4: Line 4:
====== Sitemap-XML (Google) ====== ====== Sitemap-XML (Google) ======
-===== Multidomain sitemap.php ===== 
-Enhanced version for using a start-Id in tree against a domain. +===== Category link instead of article link =====
-<file> +Using Category links instead of Article Links. Only one category link entry with the most recent Article Date is used.
-// Your strukture ID -> where would you like to start your sitemap? +
-$my_start_id = 22; //default if no domain name is given +
-// All Cat-IDs which have to be excluded permanently e.g. '4,7,34,9' +
-$_DISABLE_ID = '4,7,34,9'; // Test+
-// Add the respective START ID corresponding with your domain: remove comment slashes and enter them +Setting in "CUSTMOM VAR": [true|false] [Category-Link | Article-link]
-$_DOMAIN_ID = array(+
-//  'domain1.de'   =>  array( 'ID' =>  1 ),  
-//  'domain2.com'  =>  array( 'ID' =>  3 ),  
-//  'domain3.ch'   =>  array( 'ID' => 11 ),  
-); +**Update V1.1: 15.07.2010 KH** \\ 
-</file>+- Small correction in row 102, if "mod_rewrite = 0" the URL was lost in the output.  
 +<code php>$_link = PHPWCMS_URL.'index.php?'.($cat_link)?$_CAT['acat_alias']:setGetArticleAid( $data );  // +KH</code>
 +replaced by  
 +<code php>$_link = PHPWCMS_URL.'index.php?'.(($cat_link)?$_CAT['acat_alias']:setGetArticleAid( $data ));  // +KH</code>
 +\\
-<note tip>**Available for persons those who write useful contributions, translations or video clips into the wiki.** //  +<code php|h sitemap.php |h> 
-(Alternatively make an donation).//</note>+<?php 
 +/************************************************************************************* 
 +   Copyright notice 
 +    
 +   (c) 2002-2010 Oliver Georgi (oliver@phpwcms.de) // All rights reserved. 
 +  
 +   This script is part of PHPWCMS. The PHPWCMS web content management system is 
 +   free software; you can redistribute it and/or modify it under the terms of 
 +   the GNU General Public License as published by the Free Software Foundation; 
 +   either version 2 of the License, or (at your option) any later version. 
 +   
 +   The GNU General Public License can be found at http://www.gnu.org/copyleft/gpl.html 
 +   A copy is found in the textfile GPL.txt and important notices to the license  
 +   from the author is found in LICENSE.txt distributed with these scripts. 
 +   
 +   This script is distributed in the hope that it will be useful, but WITHOUT ANY  
 +   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
 +   PARTICULAR PURPOSE.  See the GNU General Public License for more details. 
 +  
 +   This copyright notice MUST APPEAR in all copies of the script! 
 +*************************************************************************************/ 
 +/
 +-------------------------------------------------------------------------- 
 ++KH 15.06.2010  K.Heermann http://planmatrix.de  Update V1.1 15.07.2010 
 +   Using Category links instead of Article Links 
 +   Switch in CUSTMOM VAR [true|false] [Category-Link | Article-link] 
 +   There is only one category link entry with the most recent Article Date 
 +-------------------------------------------------------------------------- 
 +*/ 
 + 
 +// ---------- CUSTOM VAR ------------------------------------------------- 
 +$cat_link = true;  // +KH: Using Category links instead of Article Links 
 +// ----------------------------------------------------------------------- 
 + 
 +// build Google Sitemap based on available articles 
 + 
 +$phpwcms = array(); 
 +require_once ('config/phpwcms/conf.inc.php'); 
 + 
 +// set neccessary charset 
 +$phpwcms["charset"] = 'utf-8'; 
 +require_once ('include/inc_lib/default.inc.php'); 
 +define('VISIBLE_MODE', 0); 
 +require_once (PHPWCMS_ROOT.'/include/inc_lib/dbcon.inc.php'); 
 +require_once (PHPWCMS_ROOT.'/config/phpwcms/conf.indexpage.inc.php'); 
 +require_once (PHPWCMS_ROOT.'/include/inc_lib/general.inc.php'); 
 +require_once (PHPWCMS_ROOT.'/include/inc_front/front.func.inc.php'); 
 + 
 +// start XML  
 +echo '<?xml version="1.0" encoding="utf-8"?>'.LF; 
 +echo '<urlset xmlns="http://www.google.com/schemas/sitemap/0.84"  
 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
 + xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84  
 + http://www.google.com/schemas/sitemap/0.84/sitemap.xsd">'.LF; 
 +echo ' <!-- Google Sitemap, http://www.google.com/webmasters/sitemaps/ -->'.LF.LF; 
 + 
 + 
 +//reads complete structure as array 
 +$struct = get_struct_data(); 
 + 
 + 
 +// fallback value when no article available 
 +$base = true; 
 + 
 + 
 +// now retrieve all articles 
 +$sql  = "SELECT article_id, article_cid, DATE_FORMAT(article_tstamp, '%Y-%m-%d') AS article_tstamp, "; 
 +$sql .= "article_title, article_redirect, article_aliasid, article_alias "; 
 +$sql .= "FROM ".DB_PREPEND."phpwcms_article WHERE "; 
 +$sql .= "article_public=1 AND article_aktiv=1 AND article_deleted=0 AND article_nosearch!='1' AND "; 
 +$sql .= "article_nositemap=1 AND article_begin < NOW() AND article_end > NOW() "; 
 +$sql .= "ORDER BY article_tstamp DESC"; 
 + 
 +if($result = mysql_query($sql, $db)) { 
 + 
 + $temp_entry = array(); 
 +  
 + while($data = mysql_fetch_assoc($result)) { 
 +  
 + // first proof if this article is within an "public" structure section 
 + $_CAT = $struct[$data['article_cid']]; 
 + if($_CAT['acat_regonly'] || $_CAT['acat_nosearch']=='1' || !$_CAT['acat_nositemap'])
 + // no it is no public article - so jump to next entry 
 + continue; 
 +
 +  
 + // +KH: No double category link if cat_link is active  
 + //      Only the most recent date is set 
 + // ---------------------------------------------- 
 + if ($cat_link) { 
 +  
 + if (!isset($temp_entry[$_CAT['acat_id']])) 
 + $temp_entry[$_CAT['acat_id']] = true; 
 +  
 + else continue; // +KH: one category link with the most recent date is set  
 +
 + // ---------------------------------------------- 
 +  
 + // now add article URL to Google sitemap 
 + if(empty($phpwcms['rewrite_url']) || empty($data['article_alias'])) { 
 +// $_link = PHPWCMS_URL.'index.php?'.setGetArticleAid( $data ); 
 + $_link = PHPWCMS_URL.'index.php?'.(($cat_link)?$_CAT['acat_alias']:setGetArticleAid( $data ));  // +KH 
 + } else { 
 +// $_link = PHPWCMS_URL.rawurlencode($data['article_alias']).'.phtml'; 
 + $_link = PHPWCMS_URL.rawurlencode(($cat_link)?$_CAT['acat_alias']:$data['article_alias']).'.phtml';  // +KH 
 +
 + echo ' <url>'.LF; 
 + echo ' <loc>'.$_link.'</loc>'.LF; 
 + echo ' <lastmod>'.$data["article_tstamp"].'</lastmod>'.LF; 
 + echo ' </url>'.LF;   
 +  
 + // yes we have a minimum of 1 article link 
 + $base = false; 
 + 
 +
 +
 + 
 + 
 + 
 +echo LF.' <!-- try to add custom URLs from INI file... '; 
 +$_addURL = parse_ini_file (PHPWCMS_ROOT.'/config/phpwcms/sitemap.custom.ini', true); 
 +echo '-->'.LF; 
 + 
 +if(is_array($_addURL) && count($_addURL)) { 
 +  
 + foreach($_addURL as $value) { 
 +  
 + $_link = empty($value['url']) ? '' : trim($value['url']); 
 + if(empty($_link)) { 
 + continue; 
 +
 + $_lastmod = empty($value['date']) ? '' : trim($value['date']); 
 + if(empty($value['date'])) { 
 + $_lastmod = date('Y-m-d'); 
 +
 + echo ' <url>'.LF; 
 + echo ' <loc>'.$_link.'</loc>'.LF; 
 + echo ' <lastmod>'.$_lastmod.'</lastmod>'.LF; 
 + echo ' </url>'.LF;   
 +  
 +
 +  
 +} else { 
 + echo ' <!-- ...no custom URL available for inclusion -->'.LF.LF; 
 +
 + 
 +if($base) { 
 + // just return the main URL 
 + echo ' <url>'.LF; 
 + echo ' <loc>'.PHPWCMS_URL.'</loc>'.LF; 
 + echo ' <lastmod>'.date('Y-m-d').'</lastmod>'.LF; 
 + echo ' </url>'.LF;   
 +
 + 
 +echo '</urlset>'; 
 + 
 +?> 
 +</code>
Line 34: Line 186:
===== Change index.php?alias to alias.phtml ===== ===== Change index.php?alias to alias.phtml =====
 +<note>
 +**Since r398 implemented in core :!:**
 +</note>
Forum: [[http://forum.phpwcms.org/viewtopic.php?p=112317#p112317]] Forum: [[http://forum.phpwcms.org/viewtopic.php?p=112317#p112317]]
-Rewriting sitemap output with ##/sitemap.php## for sitemap.xml file. (index.php?alias -> /alias.phtml)+Rewriting sitemap output of ##/sitemap.php## for sitemap.xml file. (index.php?alias -> /alias.phtml)
-Normaly the rewrite to alias.phtml is a htaccess funktion via apache.+Normally the rewriting to alias.phtml is an htaccess funktion via apache.
Patch for sitemap.php: (But only if you are using a standard .htaccess and rewrite to alias.phtml) Patch for sitemap.php: (But only if you are using a standard .htaccess and rewrite to alias.phtml)
Line 67: Line 222:
// ---------------------------------------- // ----------------------------------------
  </code>   </code>
 +
 +\\
 +
 +===== Multidomain sitemap.php =====
 +
 +
 +Enhanced version for using a start-Id in tree against a domain.
 +
 +<file>
 +// Your strukture ID -> where would you like to start your sitemap?
 +$my_start_id = 22; //default if no domain name is given
 +// All Cat-IDs which have to be excluded permanently e.g. '4,7,34,9'
 +$_DISABLE_ID = '4,7,34,9'; // Test
 +
 +// Add the respective START ID corresponding with your domain: remove comment slashes and enter them
 +$_DOMAIN_ID = array(
 +
 +//  'domain1.de'   =>  array( 'ID' =>  1 ),
 +//  'domain2.com'  =>  array( 'ID' =>  3 ),
 +//  'domain3.ch'   =>  array( 'ID' => 11 ),
 +
 +);
 +</file>
 +
 +
 +<note tip>**Available for people those who are writing useful contributions, translations or video clips for the wiki.** //
 +(As an alternative you could also make an donation).//</note>
 +
 +
 +
 +
 +\\
 +
english/other-enhancements/sitemap-xml.1242688373.txt.gz · Last modified: 2018/06/03 18:08 (external edit)
www.planmatrix.de www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0