Hi Gerd,
[EMAIL PROTECTED] schrieb:
Hello Lenya devs,
since some hours I try to achieve the following: In a Lenya 2.0
publication I'va a document with this url (example):
/default/authoring/channel1/tutorial/DG3.html. Now, any URL which
starts with "/default/authoring/channel1/tutorial/DG3/" should call
the document mentioned above with a parameter containing the rest of
the calling url (whatever comes after .../DG3/). This "URL-mapping"
must not be a client-side redirect.
I'm afraid that a client-side redirect is the only option here, since
otherwise many facilities (more specifically, all that rely on the page
envelope) won't work.
My thought was to handle this in the publication sitemap.xmap with
this pipeline-fragment: <map:pipelines> <map:pipeline> <map:match
pattern="*/channel1/tutorial/DG3/**"> <map:redirect-to
uri="cocoon:/{1}/channel1/tutorial/DG3.html?x4u={2}"/> </map:match>
</map:pipeline> : :
but I only get an error (extract from the stacktrace):
java.text.ParseException: Unparseable date: "" .... Caused by:
org.apache.cocoon.sitemap.PatternException: Cannot get variable '' in
expression
'{date-iso8601-rfc822:{page-envelope:document-lastmodified}}'
I guess this is caused by the following entry in the publication sitemap:
<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>
I'm a little suprised, though, because the language-exists action should
prevent the snippet from being called since the document
/channel1/tutorial/DG3/foo doesn't exist. Would you mind checking your
publication sitemap if such a pipeline is called without the
language-exists check?
When I'm calling the document itself
(/default/authoring/channel1/tutorial/DG3.html) it displays correctly
without any errors.
I also tried this in the main sitemap.xmap and in global-sitemap.xmap
as well as with different forms of the urls...
If you put the pipeline in one of the global sitemaps (which is
discouraged), it has to look like this:
<map:match pattern="*/*/channel1/tutorial/DG3/**">
because the URL still contains the publication ID and the area.
now I've no more ideas how I should do it...
Maybe is there a way to handle this by a doctype/module?
If you add a lenya.module=... request parameter, you can handle these
URLs in a module.
If this doesn't help, would it be possible for you to provide access to
a test environment?
-- Andreas
--
Andreas Hartmann, CTO
BeCompany GmbH
http://www.becompany.ch
Tel.: +41 (0) 43 818 57 01
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]