Advertisement
Guest User

Modifications to CultivSearchEngineSitemap.xslt

a guest
Aug 2nd, 2012
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.69 KB | None | 0 0
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE xsl:stylesheet [
  3. <!ENTITY nbsp "&#x00A0;">
  4. ]>
  5. <xsl:stylesheet
  6. version="1.0"
  7. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  8. xmlns:msxml="urn:schemas-microsoft-com:xslt"
  9. 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"
  10. exclude-result-prefixes="msxml umbraco.library Exslt.ExsltCommon Exslt.ExsltDatesAndTimes Exslt.ExsltMath Exslt.ExsltRegularExpressions Exslt.ExsltStrings Exslt.ExsltSets tagsLib BlogLibrary ">
  11.  
  12. <xsl:output method="xml" omit-xml-declaration="yes"/>
  13.  
  14. <xsl:param name="currentPage"/>
  15. <xsl:variable name="urlPrefix">
  16. <xsl:text>http://</xsl:text>
  17. <xsl:value-of select="umbraco.library:RequestServerVariables('HTTP_HOST')" />
  18. </xsl:variable>
  19.  
  20. <!-- update this variable on how deep your site map should be -->
  21. <xsl:variable name="maxLevelForSitemap" select="6"/>
  22. <xsl:variable name="url" select="concat('http://',umbraco.library:RequestServerVariables('HTTP_HOST'))" />
  23.  
  24. <xsl:template match="/">
  25. <!-- change the mimetype for the current page to xml -->
  26. <xsl:value-of select="umbraco.library:ChangeContentType('text/xml')"/>
  27.  
  28.  
  29. <!--
  30. ====================================================
  31. This <URL> node is for the homepage/root page
  32. ====================================================
  33. -->
  34. <url>
  35. <loc>
  36. <xsl:value-of select="concat($url,'/')"/>
  37. </loc>
  38. <lastmod>
  39. <xsl:value-of select="concat($currentPage/ancestor-or-self::node [@level=1]/@updateDate,'+00:00')" />
  40. </lastmod>
  41. </url>
  42.  
  43.  
  44.  
  45. <xsl:call-template name="drawNodes">
  46. <xsl:with-param name="parent" select="$currentPage/ancestor-or-self::node [@level=1]"/>
  47. </xsl:call-template>
  48. <!-- </urlset> -->
  49. </xsl:template>
  50.  
  51. <xsl:template name="drawNodes">
  52. <xsl:param name="parent"/>
  53. <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)">
  54. <xsl:for-each select="$parent/node [string(./data [@alias='umbracoNaviHide']) != '1' and @level &lt;= $maxLevelForSitemap]">
  55.  
  56. <!-- If the document does not have a template, nothing is shown in the frontend anyway.
  57. So this is not proper content and should not be in the sitemap -->
  58. <xsl:if test="@template &gt; 0">
  59. <url>
  60. <loc>
  61. <xsl:value-of select="$urlPrefix" />
  62. <xsl:value-of select="umbraco.library:NiceUrl(@id)" />
  63. </loc>
  64. <lastmod>
  65. <xsl:value-of select="@updateDate" />+00:00
  66. </lastmod>
  67. <xsl:if test="./data [@alias='searchEngineSitemapChangeFreq'] != ''">
  68. <changefreq>
  69. <xsl:value-of select="./data [@alias='searchEngineSitemapChangeFreq']" />
  70. </changefreq>
  71. </xsl:if>
  72. <xsl:if test="./data [@alias='searchEngineSitemapPriority'] != ''">
  73. <priority>
  74. <xsl:value-of select="./data [@alias='searchEngineSitemapPriority']" />
  75. </priority>
  76. </xsl:if>
  77. </url>
  78. </xsl:if>
  79.  
  80. <xsl:if test="count(./node [string(./data [@alias='umbracoNaviHide']) != '1' and @level &lt;= $maxLevelForSitemap]) ">
  81. <xsl:call-template name="drawNodes">
  82. <xsl:with-param name="parent" select="."/>
  83. </xsl:call-template>
  84. </xsl:if>
  85.  
  86. </xsl:for-each>
  87. </xsl:if>
  88. </xsl:template>
  89.  
  90. </xsl:stylesheet>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement