Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE xsl:stylesheet [
- <!ENTITY nbsp " ">
- ]>
- <xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:msxml="urn:schemas-microsoft-com:xslt"
- xmlns:umbraco.library="urn:umbraco.library" xmlns:Exslt.ExsltCommon="urn:Exslt.ExsltCommon" xmlns:Exslt.ExsltDatesAndTimes="urn:Exslt.ExsltDatesAndTimes" xmlns:Exslt.ExsltMath="urn:Exslt.ExsltMath" xmlns:Exslt.ExsltRegularExpressions="urn:Exslt.ExsltRegularExpressions" xmlns:Exslt.ExsltStrings="urn:Exslt.ExsltStrings" xmlns:Exslt.ExsltSets="urn:Exslt.ExsltSets" xmlns:tagsLib="urn:tagsLib" xmlns:BlogLibrary="urn:BlogLibrary"
- exclude-result-prefixes="msxml umbraco.library Exslt.ExsltCommon Exslt.ExsltDatesAndTimes Exslt.ExsltMath Exslt.ExsltRegularExpressions Exslt.ExsltStrings Exslt.ExsltSets tagsLib BlogLibrary ">
- <xsl:output method="xml" omit-xml-declaration="yes"/>
- <xsl:param name="currentPage"/>
- <xsl:variable name="urlPrefix">
- <xsl:text>http://</xsl:text>
- <xsl:value-of select="umbraco.library:RequestServerVariables('HTTP_HOST')" />
- </xsl:variable>
- <!-- update this variable on how deep your site map should be -->
- <xsl:variable name="maxLevelForSitemap" select="6"/>
- <xsl:variable name="url" select="concat('http://',umbraco.library:RequestServerVariables('HTTP_HOST'))" />
- <xsl:template match="/">
- <!-- change the mimetype for the current page to xml -->
- <xsl:value-of select="umbraco.library:ChangeContentType('text/xml')"/>
- <!--
- ====================================================
- This <URL> node is for the homepage/root page
- ====================================================
- -->
- <url>
- <loc>
- <xsl:value-of select="concat($url,'/')"/>
- </loc>
- <lastmod>
- <xsl:value-of select="concat($currentPage/ancestor-or-self::node [@level=1]/@updateDate,'+00:00')" />
- </lastmod>
- </url>
- <xsl:call-template name="drawNodes">
- <xsl:with-param name="parent" select="$currentPage/ancestor-or-self::node [@level=1]"/>
- </xsl:call-template>
- <!-- </urlset> -->
- </xsl:template>
- <xsl:template name="drawNodes">
- <xsl:param name="parent"/>
- <xsl:if test="umbraco.library:IsProtected($parent/@id, $parent/@path) = 0 or (umbraco.library:IsProtected($parent/@id, $parent/@path) = 1 and umbraco.library:IsLoggedOn() = 1)">
- <xsl:for-each select="$parent/node [string(./data [@alias='umbracoNaviHide']) != '1' and @level <= $maxLevelForSitemap]">
- <!-- If the document does not have a template, nothing is shown in the frontend anyway.
- So this is not proper content and should not be in the sitemap -->
- <xsl:if test="@template > 0">
- <url>
- <loc>
- <xsl:value-of select="$urlPrefix" />
- <xsl:value-of select="umbraco.library:NiceUrl(@id)" />
- </loc>
- <lastmod>
- <xsl:value-of select="@updateDate" />+00:00
- </lastmod>
- <xsl:if test="./data [@alias='searchEngineSitemapChangeFreq'] != ''">
- <changefreq>
- <xsl:value-of select="./data [@alias='searchEngineSitemapChangeFreq']" />
- </changefreq>
- </xsl:if>
- <xsl:if test="./data [@alias='searchEngineSitemapPriority'] != ''">
- <priority>
- <xsl:value-of select="./data [@alias='searchEngineSitemapPriority']" />
- </priority>
- </xsl:if>
- </url>
- </xsl:if>
- <xsl:if test="count(./node [string(./data [@alias='umbracoNaviHide']) != '1' and @level <= $maxLevelForSitemap]) ">
- <xsl:call-template name="drawNodes">
- <xsl:with-param name="parent" select="."/>
- </xsl:call-template>
- </xsl:if>
- </xsl:for-each>
- </xsl:if>
- </xsl:template>
- </xsl:stylesheet>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement