I suggest that there is an easier approach to solve your look&feel issue.

Assuming that the L&F is supported by means of some transformation, then why
not use the following sitemap construct:

<map:pipeline>
    <map:match pattern="xslt/look_feel.xsl">
        <map:action "get-user-l_f">
            <map:read src="xslt/skins/{look-n-feel}.xsl
        </map:action>
        <map:read src="xslt/default_l_f.xsl"/>
    </map:match>

    <map:match pattern="*">
        <map:generate src="{1}"/>
        <map:transform src="cocoon:/xslt/look_feel.xsl"/>
        <map:serialize/>
    </map:match>
</map:pipeline>

That way, look and feel is handled in a single location and there is no need
to extend the sitemap language.

Hope this helps,
Adrian
(I haven't tested the above, but I want to illustrate the idea)

----- Original Message -----
From: Alexander Smirnoff <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, November 26, 2001 11:20 PM
Subject: Re: Look-and-feel approach with views


> OK. Then how could I implement dynamically "look-and-feel" based on user
> credentials (customer-id, user_id) ? I see only one possible way:
inserting
> action for each XSL transformation in each pipeline... That approach makes
> sitemap look even more ugly...
>
> Comments are follows,
> Alex.
> ----- Original Message -----
> From: "giacomo" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Monday, November 26, 2001 5:50 PM
> Subject: Re: Look-and-feel approach with views
>
>
> > On Mon, 26 Nov 2001, Alexander Smirnoff wrote:
> >
> > > OK. I've got it.
> > >
> > > Well, is it possible to trigger the view from inside sitemap? What
about
> > > Passing parameters?
> > >
> > > I think the idea of breaking pipeline and continuing it from another
> > > "resource"-like pipeline ("view") from labeled predefined point is
very
> > > powerful. Imagine having the same long chain of transformations
through
> > > group or even all of pipelines in the sitemap! From my point of view
it
> > > makes sitemap more unreadable. From the other side, if you have some
> > > "resource"-like view which could be processed from any pipeline and
> being
> > > "returned" to the point of entry will make readability of sitemap more
> > > easy...
> > >
> > > Something like that:
> > > <!-- declaration -->
> > > <map:chain name="look-feel">
> > >     <!-- action "get-user-skin" :-) defines path to the source of the
> > > "skin" -->
> > >     <map:act type="get-user-skin">
> > >         <map:transform src="{srcpath}/{src}"/>
> > >     </map:act>
> > >     <map:transform src="default/{src}"/>
> > > </map:chain>
> > >
> > > <!-- from pipline -->
> > > <map:match pattern="...">
> > >     <map:generate src="welcome.xml"/>
> > >     <map:call-chain name="look-feel">
> > >         <map:parameter name="src" value="welcome.xsl"/>
> > >     </map:call-chain>
> > >     <map:serialize/>
> > > </map:match>
> > >
> > > This is just a random thought. Sorry for being naive if this is the
> > > case...Probably there are some workaround which I don't know, - I'll
be
> glad
> > > to comprehend.
> >
> > I can't see what your approach is good for. Views aren't made for
> > skinning. They are for producing view in the sense of schema, meta data,
> > links etc. but not for green or red. If you like to use it that way,
yes,
> > your sitemap might look ugly then.
>
> So what would be more elegant approach ? Use actions in each
transformation
> point in sitemap?
>
> >
> > Your proposed enhancement is only giving another programmers view
> > into the sitemap which isn't what we initially wanted and is what
> > we like to get fixed in the future.
>
> The only proposition I made is to manipulate sitemap in orthogonal fashion
> like views do. Why not?
> I do understand...
>
> What are the tradeoffs?
>
> >
> > Giacomo
> >
> > >
> > > Thanks,
> > > Alex.
> > >
> > >
> > > ----- Original Message -----
> > > From: "giacomo" <[EMAIL PROTECTED]>
> > > To: <[EMAIL PROTECTED]>
> > > Sent: Monday, November 26, 2001 2:46 PM
> > > Subject: Re: Look-and-feel approach with views
> > >
> > >
> > > > On Mon, 26 Nov 2001, Alexander Smirnoff wrote:
> > > >
> > > > > I'm using 2.0rc1, but even if I put label="xsltran" into
> <generator...>
> > > > > declaration this doesnt work either...
> > > > >
> > > > > I feel that I misundersatnd the concept. It seems, for example, in
> > > webapp
> > > > > sitemap.xconf (in HEAD branch) the view declaration like:
> > > > >
> > > > > <map:view name="links" from-position="last">
> > > > >    <map:serialize type="links"/>
> > > > > </map:view>
> > > > >
> > > > > never executes... Otherwise it supposed to be executed for every
> pipline
> > > > > after last component in pipline... So I'm really confused...
> > > >
> > > > If you don't request that view it will never be executed :) use a
> > > >
> > > >     http://localhost:8080/cocoon/welcome?cocoon-view=links
> > > >
> > > > and you'll get all the links in the welcome page as response.
> > > >
> > > > Giacomo
> > > >
> > > > >
> > > > > Thanks,
> > > > > Alex.
> > > > >
> > > > > > On Fri, 23 Nov 2001, Alexander Smirnoff wrote:
> > > > > >
> > > > > > > Hi everyone,
> > > > > > >
> > > > > > > I'm trying to use Views for setting look and feel based on
> specific
> > > user
> > > > > > > logged on the web site. So far I cannot even make very basic
> view
> > > > > working:
> > > > > > >
> > > > > > >     <map:views>
> > > > > > >         <map:view from-label="xsltran" name="xsltran">
> > > > > > >             <map:transform src="stylesheets/xsl/welcome.xsl"/>
> > > > > > >             <map:serialize/>
> > > > > > >         </map:view>
> > > > > > >     </map:views>
> > > > > > >
> > > > > > >     <map:pipelines>
> > > > > > >         <map:pipeline>
> > > > > > >             <map:match pattern="site/*">
> > > > > > >                   ...
> > > > > > >                   <map:match pattern="site/workframe">
> > > > > > >                         <map:label name="xsltran">
> > > > > > >                             <map:generate
> > > > > src="content/xml/welcome.xml"/>
> > > > > > >                         </map:label>
> > > > > > >                         <map:transform
> > > > > src="stylesheets/xsl/welcome1.xsl"/>
> > > > > > >                         <map:serialize/>
> > > > > > >                   </map:match>
> > > > > > >                   ...
> > > > > > >             </map:match>
> > > > > > >         </map:pipeline>
> > > > > > >     <map:pipelines>
> > > > > >
> > > > > > What version are you using? In the current 2.0 and HEAD branches
> of
> > > the
> > > > > > CVS there isn't a map:label anymore. So you need to specify it
> this
> > > way:
> > > > > >
> > > > > >          <map:match pattern="site/workframe">
> > > > > >            <map:generate src="content/xml/welcome.xml"
> > > label"xsltran"/>
> > > > > >            <map:transform src="stylesheets/xsl/welcome1.xsl"/>
> > > > > >            <map:serialize/>
> > > > > >          </map:match>
> > > > > >
> > > > > > Giacomo
> > > > > >
> > > > > > >
> > > > > > > this falls through "welcome1.xsl", but not through
"welcome.xsl"
> > > which
> > > > > > > suppose to be called from the "xsltran" view...
> > > > > > >
> > > > > > > What is my mistake?
> > > > > > >
> > > > > > > Thanks,
> > > > > > > Alexander Smirnoff
> > > > > > >
> > > > > > >
> > > > > >
> > >
> ---------------------------------------------------------------------
> > > > > > > Please check that your question has not already been answered
in
> the
> > > > > > > FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>
> > > > > > >
> > > > > > > To unsubscribe, e-mail:
> <[EMAIL PROTECTED]>
> > > > > > > For additional commands, e-mail:
> <[EMAIL PROTECTED]>
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > ---------------------------------------------------------------------
> > > > > > Please check that your question has not already been answered in
> the
> > > > > > FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>
> > > > > >
> > > > > > To unsubscribe, e-mail:
<[EMAIL PROTECTED]>
> > > > > > For additional commands, e-mail:
> <[EMAIL PROTECTED]>
> > > > > >
> > > > >
> > > > >
> > > >
> > ---------------------------------------------------------------------
> > > > > Please check that your question has not already been answered in
the
> > > > > FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>
> > > > >
> > > > > To unsubscribe, e-mail: <[EMAIL PROTECTED]>
> > > > > For additional commands, e-mail:
<[EMAIL PROTECTED]>
> > > > >
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> ---------------------------------------------------------------------
> > > > Please check that your question has not already been answered in the
> > > > FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>
> > > >
> > > > To unsubscribe, e-mail: <[EMAIL PROTECTED]>
> > > > For additional commands, e-mail: <[EMAIL PROTECTED]>
> > > >
> > >
> > >
> > > ---------------------------------------------------------------------
> > > Please check that your question has not already been answered in the
> > > FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>
> > >
> > > To unsubscribe, e-mail: <[EMAIL PROTECTED]>
> > > For additional commands, e-mail: <[EMAIL PROTECTED]>
> > >
> > >
> > >
> > >
> >
> >
> > ---------------------------------------------------------------------
> > Please check that your question has not already been answered in the
> > FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>
> >
> > To unsubscribe, e-mail: <[EMAIL PROTECTED]>
> > For additional commands, e-mail: <[EMAIL PROTECTED]>
> >
>
>
> ---------------------------------------------------------------------
> Please check that your question has not already been answered in the
> FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>
>
> To unsubscribe, e-mail: <[EMAIL PROTECTED]>
> For additional commands, e-mail: <[EMAIL PROTECTED]>
>


---------------------------------------------------------------------
Please check that your question has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>

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

Reply via email to