You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by an...@apache.org on 2007/05/29 08:54:42 UTC
svn commit: r542431 - in /lenya/trunk/src: modules/sitetree/sitemap.xmap
modules/sitetree/xslt/navigation/sitetree2nav.xsl pubs/default/sitemap.xmap
Author: andreas
Date: Mon May 28 23:54:40 2007
New Revision: 542431
URL: http://svn.apache.org/viewvc?view=rev&rev=542431
Log:
Use lenya-document:uuid URLs for navigation elements in sitetree module (see bug 42050)
Modified:
lenya/trunk/src/modules/sitetree/sitemap.xmap
lenya/trunk/src/modules/sitetree/xslt/navigation/sitetree2nav.xsl
lenya/trunk/src/pubs/default/sitemap.xmap
Modified: lenya/trunk/src/modules/sitetree/sitemap.xmap
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/sitetree/sitemap.xmap?view=diff&rev=542431&r1=542430&r2=542431
==============================================================================
--- lenya/trunk/src/modules/sitetree/sitemap.xmap (original)
+++ lenya/trunk/src/modules/sitetree/sitemap.xmap Mon May 28 23:54:40 2007
@@ -52,13 +52,12 @@
<map:pipeline type="caching">
<!-- sitetree -->
- <!-- pattern: sitetree/{pub-id}/{area}/{default-language}/{language}/{url}.xml -->
+ <!-- pattern: sitetree/{pub-id}/{area}/{default-language}/{language}/{path}.xml -->
<map:match pattern="sitetree/*/*/*/*/**.xml">
<map:generate src="lenya://lenya/pubs/{1}/content/{2}/sitetree.xml"/>
<map:transform src="fallback://lenya/modules/sitetree/xslt/navigation/sitetree2nav.xsl">
- <map:parameter name="url" value="/{5}"/>
+ <map:parameter name="currentPath" value="/{5}"/>
<map:parameter name="area" value="{2}"/>
- <map:parameter name="root" value="{request:contextPath}/{1}/{2}/"/>
<map:parameter name="chosenlanguage" value="{4}"/>
<map:parameter name="defaultlanguage" value="{3}"/>
</map:transform>
Modified: lenya/trunk/src/modules/sitetree/xslt/navigation/sitetree2nav.xsl
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/sitetree/xslt/navigation/sitetree2nav.xsl?view=diff&rev=542431&r1=542430&r2=542431
==============================================================================
--- lenya/trunk/src/modules/sitetree/xslt/navigation/sitetree2nav.xsl (original)
+++ lenya/trunk/src/modules/sitetree/xslt/navigation/sitetree2nav.xsl Mon May 28 23:54:40 2007
@@ -25,38 +25,10 @@
xmlns:nav="http://apache.org/cocoon/lenya/navigation/1.0"
exclude-result-prefixes="tree">
- <xsl:param name="url"/> <!-- the links will be relative to this url (must start with slash)-->
<xsl:param name="chosenlanguage"/>
<xsl:param name="defaultlanguage"/>
+ <xsl:param name="currentPath"/>
- <xsl:variable name="relative">
- <xsl:choose>
- <xsl:when test="$url != '' and starts-with($url, '/')">true</xsl:when>
- <xsl:otherwise>false</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:variable name="root">
- <xsl:if test="$relative = 'true'">
- <xsl:call-template name="create-path-to-context">
- <xsl:with-param name="local-url" select="substring-after($url, '/')"/>
- </xsl:call-template>
- </xsl:if>
- </xsl:variable>
-
- <xsl:template name="create-path-to-context">
- <xsl:param name="local-url"/>
- <xsl:if test="contains($local-url, '/')">
- <xsl:variable name="tail" select="substring-after($local-url, '/')"/>
- <xsl:text>..</xsl:text>
- <xsl:if test="contains($tail, '/')">
- <xsl:text>/</xsl:text>
- </xsl:if>
- <xsl:call-template name="create-path-to-context">
- <xsl:with-param name="local-url" select="$tail"/>
- </xsl:call-template>
- </xsl:if>
- </xsl:template>
<xsl:template match="tree:fragment">
<nav:fragment>
@@ -76,12 +48,10 @@
<xsl:template match="tree:site">
-
- <nav:site url="{$root}{$url}" request-url="{$url}">
+ <nav:site>
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</nav:site>
-
</xsl:template>
@@ -109,8 +79,8 @@
-->
<xsl:template match="tree:node[not(@visible = 'false')]">
- <!-- basic url of parent node -->
- <xsl:param name="previous-url" select="''"/>
+ <!-- base path of parent node -->
+ <xsl:param name="parentPath" select="''"/>
<xsl:variable name="existinglanguage">
<xsl:call-template name="resolve-existing-language"/>
@@ -124,70 +94,20 @@
<xsl:copy-of select="@folder"/>
<xsl:copy-of select="@uuid"/>
- <!-- basic url - for all nodes -->
-
- <xsl:variable name="basic-url">
- <xsl:text/>
- <xsl:choose>
- <xsl:when test="@href">
- <xsl:value-of select="@href"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="concat($previous-url, '/', @id)"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:variable name="language-suffix">
- <xsl:text>_</xsl:text>
- <xsl:value-of select="$existinglanguage"/>
- </xsl:variable>
+ <!-- base path - for all nodes -->
- <xsl:variable name="canonical-language-suffix">
- <xsl:choose>
- <xsl:when test="$existinglanguage != '' and $defaultlanguage != $existinglanguage">
- <xsl:value-of select="$language-suffix"/>
- </xsl:when>
- <xsl:otherwise>
- <!-- no suffix for default language --></xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
+ <xsl:variable name="path" select="concat($parentPath, '/', @id)"/>
- <!-- suffix - only when @href is not present -->
+ <!-- suffix - only when @href is not present -->
- <xsl:variable name="suffix">
- <xsl:if test="not(@href)">
- <xsl:text>.</xsl:text>
- <xsl:choose>
- <xsl:when test="@suffix">
- <xsl:value-of select="@suffix"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text>html</xsl:text>
- </xsl:otherwise>
- </xsl:choose>
+ <xsl:variable name="extensionParam">
+ <xsl:if test="@suffix">
+ <xsl:text>?uuid2url.extension=</xsl:text>
+ <xsl:value-of select="@suffix"/>
</xsl:if>
</xsl:variable>
- <xsl:attribute name="suffix">
- <xsl:value-of select="$suffix"/>
- </xsl:attribute>
- <xsl:attribute name="basic-url">
- <xsl:value-of select="concat($previous-url, '/', @id)"/>
- </xsl:attribute>
- <xsl:attribute name="language-suffix">
- <xsl:value-of select="$canonical-language-suffix"/>
- </xsl:attribute>
-
- <xsl:variable name="canonical-url">
- <xsl:value-of select="concat($basic-url, $canonical-language-suffix, $suffix)"/>
- </xsl:variable>
-
- <xsl:variable name="non-canonical-url">
- <xsl:value-of select="concat($basic-url, $language-suffix, $suffix)"/>
- </xsl:variable>
-
- <xsl:if test="$url = $canonical-url or $url = $non-canonical-url">
+ <xsl:if test="$currentPath = $path">
<xsl:attribute name="current">true</xsl:attribute>
</xsl:if>
@@ -196,12 +116,11 @@
<xsl:when test="@href">
<xsl:value-of select="@href"/>
</xsl:when>
- <xsl:when test="$relative = 'true' and $root = ''">
- <xsl:value-of select="substring-after($canonical-url, '/')"/>
+ <xsl:when test="@uuid">
+ <xsl:text>lenya-document:</xsl:text>
+ <xsl:value-of select="@uuid"/>
+ <xsl:value-of select="$extensionParam"/>
</xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="concat($root, $canonical-url)"/>
- </xsl:otherwise>
</xsl:choose>
</xsl:attribute>
@@ -221,7 +140,7 @@
</xsl:choose>
<xsl:apply-templates select="tree:node">
- <xsl:with-param name="previous-url" select="$basic-url"/>
+ <xsl:with-param name="parentPath" select="$path"/>
</xsl:apply-templates>
</nav:node>
Modified: lenya/trunk/src/pubs/default/sitemap.xmap
URL: http://svn.apache.org/viewvc/lenya/trunk/src/pubs/default/sitemap.xmap?view=diff&rev=542431&r1=542430&r2=542431
==============================================================================
--- lenya/trunk/src/pubs/default/sitemap.xmap (original)
+++ lenya/trunk/src/pubs/default/sitemap.xmap Mon May 28 23:54:40 2007
@@ -130,13 +130,13 @@
<map:serialize type="xml"/>
</map:match>
- <!-- navigation/{1:nav-element}/{2:pub-id}/{3:default-language}/{4:language}/{5:area}/{6:url} -->
+ <!-- navigation/{1:nav-element}/{2:pub-id}/{3:default-language}/{4:language}/{5:area}/{6:path} -->
<map:match pattern="navigation-element/*/*/*/*/*/**">
<map:generate src="cocoon://modules/sitetree/{1}/{2}/{3}/{4}/{5}/{6}.xml"/>
<map:serialize type="xml"/>
</map:match>
- <!-- /lenyabody-{1:rendertype}/{2:publication-id}/{3:area}/{4:doctype}/{5:default-language}/{6:language}/{7:url} -->
+ <!-- /lenyabody-{1:rendertype}/{2:publication-id}/{3:area}/{4:doctype}/{5:default-language}/{6:language}/{7:path} -->
<map:match pattern="lenyabody-raw-*/*/*/*/*/*/**">
<map:aggregate element="cmsbody">
<map:part src="cocoon:/navigation-element/breadcrumb/{2}/{3}/{5}/{6}/{7}"/>
@@ -173,16 +173,15 @@
the navigational elements (breadcrumb, tabs, menu) with the actual
content of the document. -->
<map:pipeline type="noncaching">
- <!-- /lenyabody-{1:rendertype}/{2:publication-id}/{3:area}/{4:doctype}/{5:url} -->
+ <!-- /lenyabody-{1:rendertype}/{2:publication-id}/{3:area}/{4:doctype}/{5:path} -->
<map:match pattern="lenyabody-*/*/*/*/**">
<map:generate src="cocoon:/lenyabody-raw-{1}/{2}/{3}/{4}/{page-envelope:default-language}/{page-envelope:document-language}/{5}"/>
- <map:transform type="uuid2url"/>
<map:transform src="fallback://lenya/modules/svg/xslt/image2svg.xsl"/>
<map:transform src="cocoon:/getDoctypeXSLT/{4}">
<map:parameter name="root" value="{base-url:{2}:{3}:{access-control:ssl}}"/>
<map:parameter name="publication-id" value="{2}"/>
<map:parameter name="area" value="{3}"/>
- <map:parameter name="url" value="{5}"/>
+ <map:parameter name="url" value="{page-envelope:document-url}"/>
<map:parameter name="document-path" value="{page-envelope:document-path}"/>
<map:parameter name="document-type" value="{4}"/>
<map:parameter name="language" value="{page-envelope:document-language}"/>
@@ -228,7 +227,7 @@
<map:pipeline>
<map:match pattern="**.bxe.html">
- <map:generate src="cocoon:/lenyabody-edit/{page-envelope:publication-id}/{page-envelope:area}/{page-envelope:document-type}{page-envelope:document-url}"/>
+ <map:generate src="cocoon:/lenyabody-edit/{page-envelope:publication-id}/{page-envelope:area}/{page-envelope:document-type}{page-envelope:document-path}"/>
<map:serialize type="xml"/>
</map:match>
@@ -259,10 +258,10 @@
<map:select type="parameter">
<map:parameter name="parameter-selector-test" value="{request-param:rendertype}"/>
<map:when test="edit">
- <map:generate src="cocoon:/lenyabody-edit/{page-envelope:publication-id}/{page-envelope:area}/{page-envelope:document-type}{page-envelope:document-url}"/>
+ <map:generate src="cocoon:/lenyabody-edit/{page-envelope:publication-id}/{page-envelope:area}/{page-envelope:document-type}{page-envelope:document-path}"/>
</map:when>
<map:otherwise>
- <map:generate src="cocoon:/lenyabody-view/{page-envelope:publication-id}/{page-envelope:area}/{page-envelope:document-type}{page-envelope:document-url}"/>
+ <map:generate src="cocoon:/lenyabody-view/{page-envelope:publication-id}/{page-envelope:area}/{page-envelope:document-type}{page-envelope:document-path}"/>
</map:otherwise>
</map:select>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org