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&m=112496255207733&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