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 2008/02/11 02:08:25 UTC

svn commit: r620369 - in /lenya/sandbox/pubs/example: sitemap.xmap xslt/tagsAfterCaching.xsl xslt/tagsBeforeCaching.xsl

Author: andreas
Date: Sun Feb 10 17:08:19 2008
New Revision: 620369

URL: http://svn.apache.org/viewvc?rev=620369&view=rev
Log:
Continuing work at example publication.

Modified:
    lenya/sandbox/pubs/example/sitemap.xmap
    lenya/sandbox/pubs/example/xslt/tagsAfterCaching.xsl
    lenya/sandbox/pubs/example/xslt/tagsBeforeCaching.xsl

Modified: lenya/sandbox/pubs/example/sitemap.xmap
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/example/sitemap.xmap?rev=620369&r1=620368&r2=620369&view=diff
==============================================================================
--- lenya/sandbox/pubs/example/sitemap.xmap (original)
+++ lenya/sandbox/pubs/example/sitemap.xmap Sun Feb 10 17:08:19 2008
@@ -72,13 +72,13 @@
       
     </map:pipeline>
     
-    <map:pipeline>
+    <map:pipeline type="caching">
 
       <!--
         This match provides the page context to render a given doctype to XHTML.
         It checks for the existence of a doctype-specific one, and if none
         exists, falls back to the default one.
-        /pageContext-{1:pub}/{2:area}/{3:resourceType}/{4:defaultLang}/{5:lang}/{6:uuid}/{7:path}
+        /pageContext/{1:pub}/{2:area}/{3:resourceType}/{4:defaultLang}/{5:lang}/{6:uuid}/{7:path}
       -->
       <map:match pattern="pageContext/*/*/*/*/*/*/**">
         <map:select type="resource-exists">
@@ -117,6 +117,10 @@
       <map:match pattern="*/**.html">
         <map:generate src="cocoon:/pageContext/{page-envelope:publication-id}/{1}/{page-envelope:document-type}/{page-envelope:default-language}/{page-envelope:language}/{page-envelope:document-uuid}{page-envelope:document-path}"/>
         <map:transform src="fallback://xslt/tagsAfterCaching.xsl">
+          <map:parameter name="pub" value="{page-envelope:publication-id}"/>
+          <map:parameter name="path" value="{page-envelope:document-path}"/>
+          <map:parameter name="area" value="{1}"/>
+          <map:parameter name="resourceType" value="{page-envelope:document-type}"/>
           <map:parameter name="uuid" value="{page-envelope:document-uuid}"/>
           <map:parameter name="lang" value="{page-envelope:document-language}"/>
           <map:parameter name="author" value="{properties:pubs.default.author}"/>
@@ -130,243 +134,12 @@
           <map:parameter name='pubid' value='{page-envelope:publication-id}'/>
           <map:parameter name='area' value='{page-envelope:area}'/>
         </map:transform>
-        <map:transform type="uuid2url"/>
-        <map:transform type="proxy"/>
-        <map:serialize type="xml"/>
-      </map:match>
-
-    </map:pipeline>
-
-    <!-- This is the pipeline that ultimately builds the page. -->
-    <map:pipeline type="noncaching">
-
-      <!-- 
-         This matcher takes the raw aggregated page content and applies SVG rendering and a doctype-specific
-         XSL transformation. It makes some meta information available to the XSLT, and demonstrates the use
-         of the LenyaMetaDataTransformer (see below).
-         /lenyabody-{1:rendertype}/{2:publication-id}/{3:area}/{4:doctype}/{5:path} 
-      -->
-      <map:match pattern="lenyabody-*/*/*/*/**">
-        <map:generate src="cocoon:/document-content/{1}/{2}/{3}/{5}"/>
-        <map:transform src="fallback://lenya/modules/svg/xslt/image2svg.xsl"/>
-        <map:transform src="cocoon:/getDoctypeXSLT-{4}">
-          <map:parameter name="publication-id" value="{2}"/>
-          <map:parameter name="area" value="{3}"/>
-          <map:parameter name="uuid" value="{page-envelope:document-uuid}"/>
-          <map:parameter name="language" value="{page-envelope:document-language}"/>
-          <map:parameter name="document-path" value="{page-envelope:document-path}"/>
-          <map:parameter name="document-type" value="{4}"/>
-          <map:parameter name="lastPublishedUser" value="{access-control:user-name:{workflow:lastUser.publish}}"/>
-          <map:parameter name="lastPublishedDate" value="{workflow:lastDate.publish}"/>
-          <!-- Following is a show off to explain lenya.properties.xml -->
-          <map:parameter name="author" value="{properties:pubs.default.author}"/>
-          <map:parameter name="nodeName" value="{page-envelope:document-name}"/>
-        </map:transform>
         <map:transform type="include"/>
-        <map:transform type="i18n">      
-          <map:parameter name="locale" value="{page-envelope:language}"/>
-        </map:transform>
-        
-        <!-- This is a demonstration of the generic meta data transformer
-          described in bug 39891.
-
-          1) define the ns: xmlns:meta="http://apache.org/lenya/meta/1.0/"
-          2) use it in above xsl like e.g.
-          <meta:value ns="http://purl.org/dc/elements/1.1/" element="date" uuid="{@uuid}"/>
-
-          Where @ns is the namespace for which you want to retrieve the @element for.
-          If there is more then one element registered then the transformer returns:
-          <value xmlns="http://apache.org/lenya/meta/1.0/" value="2005-09-11 12:44:05" element="date" />
-          <value xmlns="http://apache.org/lenya/meta/1.0/" value="2006-09-11 12:44:05" element="date" />
-
-          Otherwise it will return the value as characters.
-        -->
-        <map:transform type="metaData">
-          <map:parameter name='pubid' value='{page-envelope:publication-id}'/>
-          <map:parameter name='area' value='{page-envelope:area}'/>
-        </map:transform>
         <map:transform type="uuid2url"/>
-        <map:serialize type="xml"/>
-      </map:match>
-
-    </map:pipeline>
-
-    <!-- This is the main entry point into the publication. This
-    pipeline uses the uriparametrizer to determine the doctype of this
-    request. It then aggregates the lenya menu (for the given area) and
-    the lenya body, the actual document. -->
-    <map:pipeline>
-
-      <!-- 
-         FIXME: this is a BXE-specific hack that should be handled by BXE's module sitemap. The publication 
-         should not be concerned with BXE-specific pre-processing of documents.
-      -->
-      <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-path}"/>
         <map:transform type="proxy"/>
         <map:serialize type="xml"/>
       </map:match>
 
-      <!-- 
-        Finally: this matcher handles requests for publication documents. 
-        /{1:area}/{2:document-path}.html
-      -->
-      <map:match pattern="*/**.html">
-        <!-- 
-          The default publication does not have content by default. 
-          This check provides the user with a dialog to import example content. 
-          It should be removed in production systems.
-        --> 
-
-        <map:select type="resource-exists">
-          <map:when test="lenya://lenya/pubs/{page-envelope:publication-id}/content/authoring/sitetree.xml"/>
-          <map:otherwise>
-            <map:redirect-to uri="{proxy:/{page-envelope:publication-id}/{1}/{2}.html}?lenya.usecase=export.importExampleContent"/>
-          </map:otherwise>
-        </map:select>
-
-        <!-- If the requested language version of the document exists, we set a last-modified header. -->
-        <map:act type="language-exists">
-          <map:act type="set-header">
-            <map:parameter name="Last-Modified" value="{date-iso8601-rfc822:{page-envelope:document-lastmodified}}" />
-          </map:act>
-        </map:act>
-            
-        <!-- 
-          HEAD requests shouldn't have all the xslt overhead, all the user wants is the HTTP header information.
-          So the actual content generation is bypassed.
-        -->
-        <map:select type="request-method">
-          <map:when test="HEAD">
-            <map:generate src="context://lenya/content/util/empty.xml" />
-            <map:serialize type="xhtml"/>
-          </map:when>
-        </map:select>          
-
-        <map:select type="parameter">
-          <map:parameter name="parameter-selector-test" value="{request-param:rendertype}"/>
-          <map:when test="edit">
-            <!-- put the bxe_xpath attribute into the page -->
-            <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>
-            <!-- sane page w/o hacks -->
-            <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>
-
-        <!-- Menu generation -->
-        <map:select type="parameter">
-          <!-- you remember that {1} is the area, right? -->
-          <map:parameter name="parameter-selector-test" value="{1}"/>
-          <map:when test="live">
-            <!-- do nothing for live -->
-          </map:when>
-          <map:otherwise>
-            <!-- for all other areas, we want a GUI menu (handled by global-sitemap.xmap -->
-            <map:transform src="cocoon://lenya-page/{page-envelope:publication-id}/{1}/{2}.xml"/>
-            <!-- 
-                external broken link reporting (pretty much untested) 
-                TODO: External Links checking should be optional on a document by document basis.
-            -->
-            <!--
-            <map:transform src="fallback://lenya/xslt/authoring/addJavaScript.xsl">
-              <map:parameter name="scriptSRC" value="/modules/linkcheck/linkreporter.js"/>
-            </map:transform>
-            -->
-          </map:otherwise>
-        </map:select>
-
-        <!-- 
-            strip xhtml namespace prefix to ensure compatibility with non-XML conformant browsers
-            workaround to avoid empty script, style and textarea tags (firefox chokes on those)
-        -->
-        <map:transform src="fallback://lenya/xslt/util/strip_namespaces.xsl"/>
-
-        <!-- client cache expiration settings -->
-        <map:select type="parameter">
-          <map:parameter name="parameter-selector-test" value="{1}"/>
-          <!-- for live area: -->
-          <map:when test="live">
-            <!-- set cache expiration header according to resource type configuration (<expires/>) -->
-            <map:act type="language-exists">
-              <map:act type="set-header">
-                <map:parameter name="Expires" value="{date-iso8601-rfc822:{doc-info:{page-envelope:publication-id}:{page-envelope:area}:{page-envelope:document-uuid}:{page-envelope:document-language}:expires}}"/>
-              </map:act>
-            </map:act>
-          </map:when>
-          <!-- for other areas -->
-          <map:otherwise>
-            <!-- tell the browser not to cache stuff so that the user always sees up-to-date content -->
-            <map:act type="set-header">
-              <map:parameter name="Cache-Control" value="no-cache" />
-              <map:parameter name="Pragma" value="no-cache"/>
-            </map:act>
-          </map:otherwise> 
-        </map:select>
-
-        <!-- pretty-print output for easier debugging and for the benefit of new users 
-              NOTE: you may want to disable this in production for performance reasons,
-              but it's on by default in the default publication to make the generated code 
-              easier to work with for new users. -->
-        <map:transform src="fallback://lenya/modules/prettyprinting/xslt/xml2nicexml.xsl"/>
-
-        <!-- the proxy transformer handles proxy-related URL rewriting -->
-        <map:transform type="proxy"/>
-
-        <map:act type="language-exists">
-          <map:serialize type="xhtml"/>
-        </map:act>
-        <!-- 
-            When the requested document does not exist, we generate a nice error page.
-            Still, it's not what the user wants, so make sure we send a 404 "not found".
-        -->
-        <map:serialize type="xhtml" status-code="404"/>
-
-      </map:match>
-
     </map:pipeline>
-
-    <!--
-       This pipeline handles all requests that do *not* end in ".html".
-    -->
-    <map:pipeline>
-      <map:match pattern="*/**">
-        <map:act type="language-exists">
-          <!--
-             A workaround for a byte-range issue with PDFs,
-             see http://marc.theaimsgroup.com/?l=xml-cocoon-dev&amp;m=112496255207733&amp;w=2 .
-             FIXME: still necessary?
-          -->
-          <map:match type="regexp" pattern="(.*\.)(pdf|PDF|Pdf)$"> 
-            <map:read src="lenya-document:{page-envelope:document-uuid},lang={page-envelope:document-language}{link:rev}" mime-type="application/pdf">
-              <map:parameter name="byte-ranges" value="false"/>
-            </map:read>
-          </map:match>      
-          <!-- Documents other than *.html are served as-is and do not require processing: -->
-          <map:read src="lenya-document:{page-envelope:document-uuid},lang={page-envelope:document-language}{link:rev}"/>
-        </map:act>
-
-        <!-- 
-          If the action above fails (e.g. the document does not exist), call into the lenyabody pipeline.
-          It will generate a nice document-does-not-exist page for us.
-        -->
-        <map:generate src="cocoon:/lenyabody-view/{page-envelope:publication-id}/{page-envelope:area}/{page-envelope:document-type}{page-envelope:document-path}"/>
-        <map:select type="parameter">
-          <map:parameter name="parameter-selector-test" value="{1}"/>
-          <map:when test="live"/>
-          <map:otherwise>
-            <map:transform src="cocoon://lenya-page/{page-envelope:publication-id}/{1}/{2}?doctype={page-envelope:document-type}"/>
-          </map:otherwise>
-        </map:select>
-        <map:transform src="fallback://lenya/xslt/util/strip_namespaces.xsl"/>
-        <map:transform type="proxy"/>
-        <map:serialize type="xhtml" status-code="404"/>
-
-      </map:match>
-
-    </map:pipeline>
-
-
   </map:pipelines>
 </map:sitemap>

Modified: lenya/sandbox/pubs/example/xslt/tagsAfterCaching.xsl
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/example/xslt/tagsAfterCaching.xsl?rev=620369&r1=620368&r2=620369&view=diff
==============================================================================
--- lenya/sandbox/pubs/example/xslt/tagsAfterCaching.xsl (original)
+++ lenya/sandbox/pubs/example/xslt/tagsAfterCaching.xsl Sun Feb 10 17:08:19 2008
@@ -21,6 +21,11 @@
   xmlns:i="http://apache.org/cocoon/include/1.0"
   xmlns:i18n="http://apache.org/cocoon/i18n/2.1">
   
+  <xsl:param name="renderType"/>
+  <xsl:param name="resourceType"/>
+  <xsl:param name="path"/>
+  <xsl:param name="pub"/>
+  <xsl:param name="area"/>
   <xsl:param name="uuid"/>
   <xsl:param name="lang"/>
   <xsl:param name="author"/>

Modified: lenya/sandbox/pubs/example/xslt/tagsBeforeCaching.xsl
URL: http://svn.apache.org/viewvc/lenya/sandbox/pubs/example/xslt/tagsBeforeCaching.xsl?rev=620369&r1=620368&r2=620369&view=diff
==============================================================================
--- lenya/sandbox/pubs/example/xslt/tagsBeforeCaching.xsl (original)
+++ lenya/sandbox/pubs/example/xslt/tagsBeforeCaching.xsl Sun Feb 10 17:08:19 2008
@@ -35,10 +35,11 @@
     </xsl:if>
   </xsl:variable>
   
-  
+  <!--
   <xsl:template match="lenya:introspectionLink">
     <i:include src="cocoon://modules/neutron/{$pub}/{$area}{$path}{$langSuffix}.html.introspectionLink.xml"/>
   </xsl:template>
+  -->
   
   
   <xsl:template match="lenya:document">



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org