Hi Lars,

Lars Geldner schrieb:
Hi Andreas,

* I added a new page to my publication called "includetest".

* In the body of that page I added only one div element:
  <div id="refsea"></div>

* In the XSLT stylesheet webapps/lenya/lenya/pubs/mypub/xslt/page2xhtml.xsl I 
added the following template:
 <xsl:template match="xhtml:d...@id = 'refsea']">
    <ci:include 
src="lenya-document:1bce25c0-4381-11dd-9dcc-b5128f75d5b3?format=xhtml"/>
 </xsl:template>
(In the first step I only want to test including a page of the same publication, 
therefore the parameter "pub" is missing. The referenced document is in the 
same publication.)

* When I open the page "includetest", this page is empty. The HTML source code 
of that page looks like:
<!-- ... -->
<div id="main">
  <div id="body">
    <include xmlns="http://apache.org/cocoon/include/1.0"; 
src="lenya-document:1bce25c0-4381-11dd-9dcc-b5128f75d5b3?format=xhtml" />
  </div>
</div>
That means, Lenya has not transformed the include element.

* IMHO I have to add an include transformer to the publication sitemap, is it 
right?

Yes, this is correct.

But when I add something like that
<map:pipeline>
  <map:match pattern="**/includetest.html">
    <map:transform type="cinclude"/>
  </map:match>
</map:pipeline>
Lenya says "Must set a generator before adding transformer 'cinclude'
". I think, I'm on the right way, but can you please provide my a hint of how 
to transform the include element?

You have to add the include transformation step to an existing pipeline that already processes the document. You could for instance use this pipeline in the sitemap of the default publication:

  <map:match pattern="lenyabody-*/*/*/*/**">
     …
  </map:match>

The position of the transformation step depends on the steps you want to execute before/after the inclusion, but it should certainly be positioned before the uuid2url transformer.

BTW, it will become a bit tricky to rewrite the links in the included document. If it contains internal links without the pub parameter, the uuid2url transformer will try to resolve them in the current publication, which will lead to errors. You could extend the link resolver so that it looks in other publications if the document is not found in the current publication.

HTH,

-- Andreas


Thanks in advance!

Lars

Datum: Thu, 12 Mar 2009 21:43:49 +0100
Von: Andreas Hartmann <[email protected]>
An: [email protected]
Betreff: Re: share sites between publications

Hi Lars,

Lars Geldner schrieb:
Dear lenya users and developers,

we have two publications. How can we integrate a site of one
publication into another publication?
with the term "site", are you referring to a single page (i.e., Lenya document), or to a subsite (i.e., sub-sitetree)?

For example, we want to have a
link in the site tree of the first publication. When the user clicks
that link, a site of another publication should be opened in that
way, that only the site's content is displayed (within the frame of
this publication) but not the site tree of the second publication.
If you want to include a page, you can just call it using the lenya-document: protocol or using the site: protocol, appending the format parameter for the format you need:

<i:include src="lenya-document:{uuid},pub=…?format=xhtml"/>

It is important to include the pub parameter because otherwise the lenya-document source factory will look for the document only in the current publication.

HTH,

-- Andreas


--
Andreas Hartmann, CTO
BeCompany GmbH
http://www.becompany.ch
Tel.: +41 (0) 43 818 57 01



--
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]

Reply via email to