Differences

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

english:other-enhancements:sitemap-xml [2009/05/17 11:26]
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>
 +\\
 +
 +<code php|h sitemap.php |h>
 +<?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>
-<note>**Available for persons those who write useful contributions into the wiki.** //(Alternatively make an donation).//</note> 
\\ \\
Line 32: 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 65: 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.1242552396.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