Laurent,

Let me explain what I'm trying to achieve.  I am
porting my site from the old portal-fw to the new
portal engine.  I have implemented my coplets in two
steps:

1. Match on *.<style>.coplet, for example 
<map:match *.related.coplet>
 <map:generate src="{1}.resource">
 <map:trasform src="related-links.xsl"/>
 <map:serialize type="xml"/>
</map:match>

This allows me to appy the same style to multiple
sources.

2. Match on *.resource and generate xml expected for
the style (notice that I'm pulling my news-id from the
request):
<map:match related-news.resource>
 <map:generate src="news.xml">
 <map:trasform src="news2related.xsl">
   <map:parameter name="news-id"
value="{request-param:news-id}"/>
 <map:serialize type="xml"/>
</map:match>

Does this make sense?

Thanks,
-Alex

--- Laurent Trillaud <[EMAIL PROTECTED]> wrote:
> Alex
> I'm not sure to understand what your problem is.
> When you declare a coplet attribute in the
> copletinstancedata dir, it's like
> a local variable where the scope is the coplet
> itself.
> Laurent
> 
> > -----Message d'origine-----
> > De : Alex Romayev [mailto:[EMAIL PROTECTED]
> > Envoyé : mardi 20 janvier 2004 17:08
> > À : [EMAIL PROTECTED]
> > Objet : RE: [portal] Linking to portal pages
> > 
> > OK, I'm almost there!
> > 
> > The reason for the error was that I was using
> > "parameters/news-id" rather than
> "attributes/news-id".
> > 
> > Now one question: easier to show with an example:
> > 
> > This works:
> > 
> > <map:match pattern="news-item.portlet">
> >   <map:generate src="news.xml"/>
> >   <map:transform src="filter-news-item.xsl">
> >     <map:parameter name="news-id"
> > value="{coplet:attribute/news-id}/>
> >   </map:transform>
> >   <map:transform src="news-item2html.xsl"/>
> >   <map:serialize type="xml/>
> > </map:match>
> > 
> > However, this does't (notice, that the attribute
> is
> > being used by another pipeline, which is called by
> the
> > coplet pipeline):
> > 
> > <map:match pattern="news-item.portlet">
> >   <map:generate src="cocoon:/news-item.resouce"/>
> >   <map:transform src="news-item2html.xsl"/>
> >   <map:serialize type="xml/>
> > </map:match>
> > 
> > <map:match pattern="news-item.resource">
> >   <map:generate src="news.xml"/>
> >   <map:transform src="filter-news-item.xsl">
> >     <map:parameter name="news-id"
> > value="{coplet:attribute/news-id}/>
> >   </map:transform>
> >   <map:serialize type="xml/>
> > </map:match>
> > 
> > Any ideas?
> > 
> > Thanks,
> > -Alex
> > 
> > --- Alex Romayev <[EMAIL PROTECTED]> wrote:
> > > Hi Laurent,
> > >
> > > Thanks again for your help,
> > > -Alex
> > >
> > > ==========================================
> > > copletinstancedata/portal.xml:
> > >
> > > The calling coplet:
> > >
> > > <coplet-instance-data id="news-summary-1"
> > > name="standard">
> > >   <coplet-data>news-summary</coplet-data>
> > > </coplet-instance-data>
> > >
> > > The coplet being called, requires news-id
> parameter
> > > (no default):
> > > <coplet-instance-data id="news-item-1"
> > > name="standard">
> > >   <coplet-data>news-item</coplet-data>
> > >   <attribute>
> > >     <name>news-id</name>
> > >     <value
> > >
> >
>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> > > xsi:type="java:java.lang.String"></value>
> > >   </attribute>
> > > </coplet-instance-data>
> > >
> > > ======================================
> > > portlets.xmap:
> > >
> > > <map:match pattern="home/news-summary.portlet">
> > >   <map:generate
> > > src="cocoon://site/home/news-summary.resource"/>
> > >   <map:transform
> > >
> >
>
src="portal/styles/html/portlets/home/news-summary.xsl">
> > >     <map:parameter name="use-request-parameters"
> > > value="true"/>
> > >   </map:transform>
> > >   <map:act type="locale">
> > >     <map:transform type="i18n">
> > >       <map:parameter name="locale"
> > > value="{locale}"/>
> > >     </map:transform>
> > >   </map:act>
> > >   <map:transform type="portal-coplet" />
> > >   <map:serialize type="xml"/>
> > > </map:match>
> > >
> > >
> > > <map:match
> pattern="news/news-news-item.portlet">
> > >   <map:aggregate element="module">
> > >     <map:part
> > > src="cocoon://site/content/news.processed.xml"/>
> > >     <map:part
> > >
> src="cocoon://site/content/family.processed.xml"/>
> > >   </map:aggregate>
> > >   <map:transform
> > > src="portal/xslt/news/join-with-people.xsl"/>
> > >   <map:transform
> > > src="portal/xslt/news/news-item.xsl">
> > >     <map:parameter name="news-id"
> > > value="{coplet:attributes/news-id}"/>
> > >   </map:transform>
> > >   <map:transform
> > >
> >
>
src="portal/styles/html/portlets/home/news-summary.xsl"/>
> > >   <map:act type="locale">
> > >     <map:transform type="i18n">
> > >       <map:parameter name="locale"
> > > value="{locale}"/>
> > >     </map:transform>
> > >   </map:act>
> > >   <map:transform type="portal-coplet" />
> > >   <map:serialize type="xml"/>
> > > </map:match>
> > >
> > > ===============================================
> > > news-summary.xsl
> > >
> > > <cl:links>
> > >   <cl:link layout="maintab" value="3"
> > > path="aspectDatas/tab"/>
> > >   <cl:link layout="newstab" value="2"
> > > path="aspectDatas/tab"/>
> > >   <cl:link coplet="news-item-1" value="[EMAIL PROTECTED]"
> > > path="parameters/news-id"/>
> > >   <cl:content>Read more</cl:content>
> > > </cl:links>
> > >
> > > ============================================
> > >
> > > --- Laurent Trillaud <[EMAIL PROTECTED]> wrote:
> > > > Alex
> > > > Can you give snippets of your
> > > > copletinstancedata/portal.xml file and your
> > > > sitemap.xmap?
> > > > Laurent
> > > >
> > > > > -----Message d'origine-----
> > > > > De : Alex Romayev [mailto:[EMAIL PROTECTED]
> > > > > Envoyi : mardi 20 janvier 2004 00:21
> > > > > @ : [EMAIL PROTECTED]
> > > > > Objet : RE: [portal] Linking to portal pages
> > > > >
> > > > > Laurent,
> > > > >
> > > > > I think I'm almost there, however I'm
> getting an
> > > > error
> > > > > and I believe it is because I don't quite
> > > > understand
> > > > > your point #2 and making some mistake there.
> > > The
> > > > > error that I get is:
> > > > >
> > > > > org.apache.cocoon.ProcessingException:
> Failed to
> > > > > execute pipeline.:
> > > > > org.apache.commons.jxpath.JXPathException:
> > > > Exception
> > > > > trying to set value with xpath
> > > parameters/news-id;
> > > > > Cannot set property /parameters/news-id,
> path
> > > does
> > > > not
> > > > > match a changeable location.
> > > > >
> > > > > Please see my comments below.
> > > > >
> > > > > Thanks,
> > > > > -Alex
> > > > >
> > > > >
> > > > > --- Laurent Trillaud <[EMAIL PROTECTED]>
> wrote:
> > > > > > Alex
> > > > > > Yes, but it's a bad idea, because you
> haven't
> > > > > > insurance about coplets
> > > > > > synchronization, and you will not have the
> > > > benefit
> > > > > > of the history record of
> > > > > > the portal.
> > > > > > The good design is to use coplet
> attributes.
> > > > > > 1. Declare an attributes in
> > > > > > copletinstancedata/portal.xml
> > > > > > <coplet-instance-data id="MyCoplet-1"
> > > > > > name="standard">
> > > > > > <coplet-data>MyCoplet</coplet-data>
> > > > > > <attribute>
> > > > > > <name>MyAttribute</name>
> > > > > > <value
> > > > > >
> > > > >
> > > >
> > >
> >
>
xsi:type="java:java.lang.String">MyDefaultValue</value>
> > > > > > </attribute>
> > > > > > </coplet-instance-data>
> > > > >
> > > > > OK, I did that -- my coplet instance is
> named
> > > > > "news-item-1" and the attribute "news-id". 
> I
> > > also
> > > > > noticed that the sample places the
> attributes in
> > > > > coplet definitions rather than coplet
> instances,
> > > > does
> > > > > it matter?
> > > > >
> > > > > > 2. Use the portal-coplet transformer to
> set
> > > the
> > > > > > attribute
> > > > > > <cl:links>
> > > > > > <cl:link layout="maintab" value="1"
> > > > > > path="aspectDatas/tab"/>
> > > > > > <cl:link coplet="MyCoplet-1"
> value="MyValue"
> > > > > > path="parameters/MyAttribute"/>
> > > > > > <cl:content>My News Page</cl:content>
> > > > > > </cl:links>
> > > > > > It will produce another event on the href
> > > > > > <a
> > > > > >
> > > > >
> > > >
> > >
> >
>
href="portal?portal-action=n&portal-event=m&portal-event=m+1>
> > > > > > My News Page</a>
> > > > > > Be careful, to access to the MyCoplet-1
> > > > attributes
> > > > > > this transformer need to
> > > > > > be call by the MyCoplet itself and with
> the
> > > > cocoon
> > > > > > protocol.
> > > > >
> > > > > I'm not sure what you mean.  In my case I
> have 2
> > > > > coplet instances: news-list-1 and
> news-item-1.
> > > > Each
> > > > > item in the news list needs to have a link
> to
> > > the
> > > > > corresponding news item.  So I put the above
> > > code
> > > > in
> > > > > the news-list-1 coplet and used the
> > > > coplet-transformer
> > > > > to generate the ancor tag.
> > > > >
> > > > > When I click on the generated link, I get
> the
> > > > "path
> > > > > does not match a changeable location" error.
> > > > >
> > > > > If it's not the
> > > > > > case use the portal action to 'load' it in
> > > > memory.
> > > > > > <map:act type="portal-object-model">
> > > > > > <map:parameter name="portalName"
> > > value="portal"
> > > > />
> > > > > > <map:parameter name="CopletId"
> > > > value="MyCoplet-1" />
> > > > > > </map:act>
> > > > >
> > > > > I think this is my case, since my news-list
> > > coplet
> > > > > needs to call news-item coplet.  Where do I
> > > place
> > > > > this?
> > > > >
> > > > > > 3. use it
> > > > > > Read value from the coplet input module.
> For
> > > > example
> > > > > > to use it with an xsl
> > > > > > <map:match pattern="MyCoplet.html">
> > > > > > <map:generate src="MyData.xml" />
> > > > > > <map:transform src="xml2html.xsl">
> > > > > > <map:parameter name="MyParameter"
> > > > > > value="{coplet:attributes/MyAttribute}"/>
> > > > > > </map:transform>
> > > > > > <map:serialize />
> > > > > > </map:match>
> > > > > >
> > > > > > Laurent Trillaud
> > > > > >
> > > > > >
> > > > > > > -----Message d'origine-----
> > > > > > > De : Alex Romayev
> [mailto:[EMAIL PROTECTED]
> > > > > > > Envoyi : lundi 19 janvier 2004 15:31
> > > > > > > @ : [EMAIL PROTECTED]
> > > > > > > Objet : RE: [portal] Linking to portal
> pages
> > > > > > >
> > > > > > > Thanks Laurent -- that works great!
> > > > > > >
> > > > > > > Another question, is there a way to pass
> a
> > > > request
> > > > > > > parameter with it, so that the anchor is
> > > > something
> > > > > > > like:
> > > > > > >
> > > > > > > <a
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
href="portal?portal-action=n&portal-event=m&news-id=x>My>
> > > > > > > News Page</a>
> > > > > > >
> > > > > > > Thanks,
> > > > > > > -Alex
> > > > > > >
> > > > > > > --- Laurent Trillaud
> <[EMAIL PROTECTED]>
> > > > wrote:
> > > > > > > > Hi,
> > > > > > > > Events in the new portal engine are
> very
> > > > > > powerful
> > > > > > > > but totally misdocumented.
> > > > > > > > If you want a link to switch to a News
> tab
> > > > in
> > > > > > your
> > > > > > > > portal you need to create
> > > > > > > > an event to say to the maintab
> composite
> > > > layout
> > > > > > to
> > > > > > > > switch to is second
> > > > > > > > layout (0 based index) and send it to
> the
> > > > > > portal.
> > > > > > > > Hoppefully, the portal-coplet
> transformer
> > > > will
> > > > > > do it
> > > > > > > > for you
> > > > > > > > <cl:links>
> > > > > > > > <cl:link layout="maintab" value="1"
> > > > > > > > path="aspectDatas/tab"/>
> > > > > > > > <cl:content>My News Page</cl:content>
> > > > > > > > </cl:links>
> > > > > > > > will be replace by
> > > > > > > > <map:transform type="portal-coplet" />
> > > > > > > > by an anchor
> > > > > > > > <a
> > > > > >
> href="portal?portal-action=n&portal-event=m>My
> > > > > > > > News Page</a>
> > > > > > > > where n and m are auto-incremented
> > > integer.
> > > > > > > >
> > > > > > > > If the link can't be compute inside
> the
> > > > portal,
> > > > > > you
> > > > > > > > can use the bookmark
> > > > > > > > feature of the portal . The sample
> include
> > > > with
> > > > > > > > cocoon use
> > > > > > > > it(portal/resources/bookmarks.xml).
> > > > > > > > Just write a link
> > > > > > > > <a
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
href="http://myserver/myproject/portal/bookmark?showtab=1";>
> > > > > > > > My News Page</a> and it will do the
> same
> > > > thing.
> > > > > > > >
> > > > > > > > Laurent Trillaud
> > > > > > > >
> > > > > > > > > -----Message d'origine-----
> > > > > > > > > De : Alex Romayev
> > > > [mailto:[EMAIL PROTECTED]
> > > > > > > > > Envoyi : vendredi 16 janvier 2004
> 23:20
> > > > > > > > > @ : [EMAIL PROTECTED]
> > > > > > > > > Objet : [portal] Linking to portal
> pages
> > > > > > > > >
> > > > > > > > > Hi,
> > > > > > > > >
> > > > > > > > > I am porting my site from old
> portal-fw
> > > to
> > > > the
> > > > > > new
> > > > > > > > > portal engine.  I was able to port
> all
> > > the
> > > > > > coplets
> > > > > > > > and
> > > > > > > > > pages with any problems, however, I
> got
> > > > really
> > > > > > > > stuck
> > > > > > > > > on events.  I am clearly missing the
> > > point
> > > > > > here,
> > > > > > > > so
> > > > > > > > > could someone at least point me in
> the
> > > > right
> > > > > > > > direction
> > > > > > > > > (an example would be great!)?
> > > > > > > > >
> > > > > > > > > I need to create a links to my
> portal
> > > > pages
> > > > > > from
> > > > > > > > > within coplet content.  For example,
> I
> > > > used to
> > > > > > > > have
> > > > > > > > > News page, so I could use the
> following:
> > > > > > > > >
> > > > > > > > > <a href=portal/news>News</a>
> > > > > > > > >
> > > > > > > > > Now my News page is represented as a
> > > tab.
> > > > How
> > > > > > > > would I
> > > > > > > > > generate the right link to this
> page?
> > > > > > > > >
> > > > > > > > > Thanks,
> > > > > > > > > -Alex
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
---------------------------------------------------------------------
> > > > > > > > > To unsubscribe, e-mail:
> > > > > > > > [EMAIL PROTECTED]
> > > > > > > > > For additional commands, e-mail:
> > > > > > > > [EMAIL PROTECTED]
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
---------------------------------------------------------------------
> > > > > > > > To unsubscribe, e-mail:
> > > > > > > > [EMAIL PROTECTED]
> > > > > > > > For additional commands, e-mail:
> > > > > > > > [EMAIL PROTECTED]
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > =====
> > > > > > > Alex Romayev
> > > > > > > Software Architect
> > > > > > > http://www.romayev.com
> > > > > > > [EMAIL PROTECTED]
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
---------------------------------------------------------------------
> > > > > > > To unsubscribe, e-mail:
> > > > > > [EMAIL PROTECTED]
> > > > > > > For additional commands, e-mail:
> > > > > > [EMAIL PROTECTED]
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
---------------------------------------------------------------------
> > > > > > To unsubscribe, e-mail:
> > > > > > [EMAIL PROTECTED]
> > > > > > For additional commands, e-mail:
> > > > > > [EMAIL PROTECTED]
> > > > > >
> > > > >
> > > > >
> > > > > =====
> > > > > Alex Romayev
> > > > > Software Architect
> > > > > http://www.romayev.com
> > > > > [EMAIL PROTECTED]
> > > > >
> > > > >
> > > >
> > >
> >
>
---------------------------------------------------------------------
> > > > > To unsubscribe, e-mail:
> > > > [EMAIL PROTECTED]
> > > > > For additional commands, e-mail:
> > > > [EMAIL PROTECTED]
> > > >
> > > >
> > > >
> > > >
> > >
> >
>
---------------------------------------------------------------------
> > > > To unsubscribe, e-mail:
> > > > [EMAIL PROTECTED]
> > > > For additional commands, e-mail:
> > > > [EMAIL PROTECTED]
> > > >
> > >
> > >
> > > =====
> > > Alex Romayev
> > > Software Architect
> > > http://www.romayev.com
> > > [EMAIL PROTECTED]
> > >
> > >
> >
>
---------------------------------------------------------------------
> > > To unsubscribe, e-mail:
> > > [EMAIL PROTECTED]
> > > For additional commands, e-mail:
> > > [EMAIL PROTECTED]
> > >
> > 
> > 
> > =====
> > Alex Romayev
> > Software Architect
> > http://www.romayev.com
> > [EMAIL PROTECTED]
> > 
> >
>
---------------------------------------------------------------------
> > To unsubscribe, e-mail:
> [EMAIL PROTECTED]
> > For additional commands, e-mail:
> [EMAIL PROTECTED]
> 
> 
> 
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> [EMAIL PROTECTED]
> For additional commands, e-mail:
> [EMAIL PROTECTED]
> 


=====
Alex Romayev
Software Architect
http://www.romayev.com
[EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to