Google sitemap

Материал из Umicms
Версия от 10:39, 21 октября 2010; Cmac (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к:навигация, поиск

В UMI.CMS реализован протокол Google sitemap

Использование файлов Sitemap инструкция для веб-мастеров http://www.google.com/support/webmasters/bin/topic.py?topic=8476
Подробнее о протоколе https://www.google.com/webmasters/tools/docs/ru/protocol.html#sitemapXMLExample

Поддержка протокола может быть добавлена в UMI.CMS начиная с версии 2.5.3 Протокол sitemap реализован на основе протокола UMap

Необходимо отредактировать единственный для версии 2.5.3 файл ./umaps/sitemap.xml (совпадает с названием протокола по чистой случайности).


Протокол umap имеет более высокий приоритет чем шаблонизатор. Это значит, что если в структуре сайта есть страница с именем google-sitemap, то она будет проигнорирована, т.к. в первую очередь обрабатываются правила протокола UMap сгенерируется xml в результате вызова udata://content/sitemap/ она будет обработана в соответствии с правилами файла ./xsltTpls/google-sitemap.xsl и результат будет отдан системой с заголовком xml в сответствии с инструкцией serialize type="xml"

<?xml version="1.0" encoding="utf-8"?>
<sitemap>
	<match pattern="^google-sitemap$">
		<param name="cache" value="10" />
		<generate src="udata://content/sitemap/" />
		<transform src="./xsltTpls/sys-tpls/google-sitemap.xsl">
			<param name="domain" value="{_http_host}" />
		</transform>
		<serialize type="xml" />
	</match>
 </sitemap>

Это правило использует файл находящийся в папке относительно корня сайта ./xsltTpls/sys-tpls/google-sitemap.xsl

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet	version="1.0"
		xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
		xmlns:php="http://php.net/xsl"
		xsl:extension-element-prefixes="php"
		exclude-result-prefixes="php">

	<xsl:output encoding="utf-8" method="xml" indent="yes"/>
	<xsl:param name="domain" />


	<xsl:template match="/">
		<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">
			<xsl:apply-templates select="//items"/>
		</urlset>
	</xsl:template>


	<xsl:template match="items">
		<xsl:apply-templates select="item"/>	
	</xsl:template>


	<xsl:template match="item">
		<url>
			<loc>
				<xsl:value-of select="concat('http://', $domain, @link)" />
			</loc>
		</url>
	</xsl:template>

</xsl:stylesheet>


Чтобы добавить поддержку Google sitemap в уже установленную UMI.CMS необходимо скопировать файлы из архива Файл:Googlesitemap.zip, соблюдая структуру папок в архиве (распаковать архив в корень сайта).

проверка работоспособности http://адрес_сайта/google-sitemap

XSD схема стандарта Google sitemap лежит в папке ./xsl/xsd/sitemap.xsd