Thanks everyone for all your help.  Late last night
after reading more documentation, I discovered the
concept of the "internal" pipeline.  This seems to be
exactly what I need.  I can aggregrate all the pieces
after they've been generated and transformed in an
internal pipeline into one big xml file that can then
be transformed by my main XSL stylesheet.

Now, another question that I can't seem to find any
documentation on.  Is there an analogue for the
application-scope variable in cocoon?  Or perhaps
there's a better way to do what I need to do in
Cocoon.

In my JSP app, I would have, say 100 articles and on
each page click, I randomly displayed 5 articles.  I
did this by storing all the article info in an
application variable upon which I would randomly pick
5 to display everytime the user clicked a new page. 
The advantage of using the application-scope variable
was I did have to hit the database on every click and
it was data that every user shared.  The disadvantage
is, if a new article was added, I would have to
restart the Web service to get it added.

Anyway, can anyone provide advice as to how I might
accomplish this in cocoon?

--- Jan Hoskens <[EMAIL PROTECTED]> wrote:

> footh wrote:
> 
> >I read about flow before and in fact I intended ot
> use
> >it once I got this supposedly "basic" part of the
> site
> >resolved.
> >
> >Anyway, I re-read the documentation and I can't
> seem
> >to find out how it would help the situation
> described
> >below.  How can I use flow logic combine 5 pages
> that
> >require dynamic processing into one page?
> >  
> >
> 
> There are several ways to do this. Take a look at
> the docs for: 
> aggregating (sitemap element), cinclude or xinclude
> (transformers).
> 
> I'll give a small example:
> - Let each request go through one sitemap matcher
> - This matcher has either an aggregate:
>     <map:aggregate ... maybe defining a new
> surrouning parent element
>        <map:part.... here your different parts
> (menu/content/sidebars...)
> 
>    or read in a template page and use includes:
>     <map:generate src="template.xml"/> (template
> contains include tags 
> for each different part)
>     <map:transform type="cinclude"/> (this step
> reads the include tags 
> and calls the different pipes to include)
> 
> - each part for menu/sidebars/... can be processed
> by separate matchers 
> in an internal-only pipeline
> 
> - each matcher can contain its own flowscript
> functions if needed(thus 
> program/call anything you like), or you can produce
> general information 
> in your template sitemap matcher (eg by action , own
> component or again 
> flowscript, doesn't matter) and set these in your
> session or context so 
> it's available within the different parts.
> 
> - the template matcher will then contain all the
> information and you can 
> style this to any outputtype you want (probably just
> plain html). Just 
> remember to leave your html styling and javascript
> in different files 
> and include these.
> 
> When creating your own generator/components remember
> to make these 
> reusable and that there is already a lot of
> funcionality available.
> 
> Kind regards,
> Jan
> 
> 
> 
> >--- Ralph Goers <[EMAIL PROTECTED]> wrote:
> >
> >  
> >
> >>It sounds like you need to take a look at
> flowscript
> >>or javaflow.
> >>
> >>footh wrote:
> >>
> >>    
> >>
> >>>I'm converting my site from pure JSP to Cocoon.
> >>>
> >>>I've read lots of tutorials on Cocoon and I've
> come
> >>>really close to getting the site to work the way
> I
> >>>want but I've hit a few snags.
> >>>
> >>>Basically, the site has a header, footer and two
> >>>sidebars with content in the middle.  In JSP, I
> >>>      
> >>>
> >>would
> >>    
> >>
> >>>just have includes on every page for the header,
> >>>footer, etc.  However, in Cocoon, I was hoping I
> >>>      
> >>>
> >>could
> >>    
> >>
> >>>have one "template" page that decided the layout.
> >>>
> >>>I was able to create this model, mainly using
> this
> >>>tutorial:
> >>>      
> >>>
>
>>http://www.cocooncenter.org/articles/navigation.html
> >>    
> >>
> >>>I created an XSL stylesheet for the header,
> footer,
> >>>and two sidebars, along with associated XML
> content
> >>>files and imported those into a "main"
> stylesheet. 
> >>>Then, in the main stylesheet, I apply the
> templates
> >>>for the constant parts by using the document
> >>>      
> >>>
> >>function
> >>    
> >>
> >>>in XSL, for ex:
> >>>
> >>><xsl:apply-templates
> >>>select="document('..\menus\header.xml')/*"/>
> >>>
> >>>For the main content on each page, I have
> separate
> >>>      
> >>>
> >>XML
> >>    
> >>
> >>>files that, for now, are simply a dump of static
> >>>      
> >>>
> >>HTML
> >>    
> >>
> >>>and I use the copy-of XSL tag to insert it into
> the
> >>>page.  Later, I'll make these XSP pages and
> >>>dynamically generate the content.
> >>>
> >>>Here's where I've hit a couple issues.  The
> header,
> >>>footer and sidebars contain some dynamic content.
> 
> >>>      
> >>>
> >>For
> >>    
> >>
> >>>example, if a person is logged in, the header
> will
> >>>show something different.  I was able to get
> around
> >>>this by passing in the "remoteUser" parameter to
> >>>      
> >>>
> >>the
> >>    
> >>
> >>>stylesheet in the pipeline and then using
> >>>      
> >>>
> >>stylesheet
> >>    
> >>
> >>>logic.  But, there's also other logic I will need
> >>>      
> >>>
> >>to
> >>    
> >>
> >>>process that's a bit more complicated (ex. 
> >>>      
> >>>
> >>depending
> >>    
> >>
> >>>on the user's role, etc).  With my current
> layout,
> >>>      
> >>>
> >>I
> >>    
> >>
> >>>can't seem to find a way to add logic that can
> use
> >>>Java to these mostly static blocks.
> >>>
> >>>I've tried aggregating, but that doesn't seem to
> 
=== message truncated ===



                
____________________________________________________
Start your day with Yahoo! - make it your home page 
http://www.yahoo.com/r/hs 
 

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

Reply via email to