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