On Mon, Apr 19, 2004 at 04:28:52AM -0600, Antonio Gallardo wrote:
> > <match pattern="table-view">
> >   <generate src="table.xml"/>
> >   <transform src="table2html.xsl">
> >     <parameter name="sortOrder" value="{flow-attribute:sortOrder}"/>
> >   </transform>
> >   <serialize>
> > </match>
> >
> > sortOrder.js:
> >
> > function getSortOrder() {
> >   sendPage("table-view",
> >            {"sortOrder": cocoon.request.attibute.sortOrder}
> > }
> > </citation>
> 
> Maybe I am too much DB oriented guy. I prefer to let DB Engine make what
> they do the best: retrieve, store and sort data. DB easily kick any Java
> or XSLT techno in ther own stuff!
Yeah but that was only the example of a variable/constant that has to be
passed from flow to transformer

> JXTG can get the values from flow. This is the way we work now. I am aware
> JXTG allow you to call Java code from inside, but we prefer to avoid that.
> Because from our POV it is not a "view" concern.
> 
> > Stylesheets: you have to pass a parameter to the stylesheet so you do :
> >
> > <match pattern="table-view">
> >   <generate src="table.xml"/>
> >   <transform src="table2html.xsl">
> >     <parameter name="homePath" value="{session:homePath}"/>
> >   </transform>
> >   <serialize>
> > </match>
> >
> > Cannot express it other like: this does not feel right. The use of session
> > looks like a workaround for me and for someone who would read my
> > application code it would look unclear.
> 
> What about using CInclude or Xinclude in the XSLT? That way you don't need
> to send the parameter at all.
Imagine you have a navigation.xml that defines your menu in some kind of
markup. Your menu2html.xsl has to have acces to some application
constants/variables.

> > There is another solution: use global sitemap variables. I also do not
> > like it at all.
> >   - you have to put some of your code into sitemap (I'd prefer to keep all
> >     the variables in flowscript)
> >   - you have to pass this value to the function/continuation call and set
> >     it every time they are invoked - ugly!
> >
> > I would really love something like you mentioned - another context at
> > cocoon
> > root like ${cocoon.applicationWideVariables.homePath}
> 
> Hmm.... the type of "variables" of the sample are in fact constants.
> Something like the handler name in auth-fw. They have a fixed value and
> never change at runtime.
i.e. currently logged in user is a variable and you need those for all views.

> 
> BTW, HomePath is not a good sample. Anyway, there are other ways to get it
> if you need. We try to make relatives links everywhere. That allow to
> deploy your application no matter where the client need it.
> As pointed before as they are in fact constant and not variables, you can
> use XInclude too.
I prefer to use absolute paths and set the root somewhere. It gives you much
more control if you have complicated URIs for example:

http://myhost/myapp/document/1/show. If you assume http://myhost/myapp/ is
your root the you have to link everything on this page to ../../somethingElse
because all scripts are "run" at http://myhost/myapp/ level. Your solution is
good if you use one level uris only.
        lg
-- 
            __
         | /  \ |        Leszek Gawron            //  \\
        \_\\  //_/       [EMAIL PROTECTED]           _\\()//_
         .'/()\'.     Phone: +48(501)720812     / //  \\ \
          \\  //  recursive: adj; see recursive  | \__/ |

Reply via email to