NAVIGATION
This shows you the differences between two versions of the page.
english:other-enhancements:sitemap-xml [2009/04/25 08:05] 127.0.0.1 external edit |
english:other-enhancements:sitemap-xml [2018/06/03 18:09] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
{{indexmenu_n>30}} | {{indexmenu_n>30}} | ||
- | ===== Sitemap-XML (Google) ===== | + | |
+ | ====== Sitemap-XML (Google) ====== | ||
+ | |||
+ | |||
+ | |||
+ | ===== Category link instead of article link ===== | ||
+ | |||
+ | Using Category links instead of Article Links. Only one category link entry with the most recent Article Date is used. | ||
+ | |||
+ | Setting in "CUSTMOM VAR": [true|false] [Category-Link | Article-link] | ||
+ | |||
+ | |||
+ | **Update V1.1: 15.07.2010 KH** \\ | ||
+ | - 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> | ||
+ | |||
+ | |||
+ | \\ | ||
+ | |||
+ | ===== 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 35: | 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> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | \\ | ||
+ |