> From: Stefano Mazzocchi [mailto:[EMAIL PROTECTED]]
> Piroumian Konstantin wrote:
> >>
> >>>>So the user would say {default:skin}, and get the 'skin' request
> >>>>parameter, or if not present, 'defaultSkin'.
> >>>>
> >>>>IMO this is backwards. The user should use {request:skin}, not
> >>>>{defaults:skin}.
> >>>>
> >>>>What do people think? Chris?
> >>>
> >>>I imagine this a little different, e.g.:
> >>>
> >>> <component-instance
> >>>class="org.apache.cocoon.components.modules.input.SkinModule"
> >>> logger="core.modules.input" name="skin">
> >>> <input-module name="request-param"/>
> >>> <input-module name="skin-defaults"/>
> >>> </component-instance>
> >>
> >>Oo.. that's a good idea. Say we've got all these modules
> >>floating about loose, and then we have a 'glue' module that
> >>can stick together a bunch of them.
> >
> >
> > Exactly this I've been trying to say all this time. Seems that it's
> > time to went to some English courses ;)
> >
> >
> >><component-instance class="...GlueModule" name="forwards">
> >> <input-module name="A"/>
> >> <input-module name="B"/>
> >> <input-module name="C"/>
> >></component-instance>
> >>
> >><component-instance class="...GlueModule" name="backwards">
> >> <input-module name="C"/>
> >> <input-module name="B"/>
> >> <input-module name="A"/>
> >></component-instance>
> >
> >
> > Exactly!
>
> Sorry but I totally lost you people and I have the impression
> that many
> round here have the same problem (look at Carsten that woke
> up only very
> recently on this input-module thing :-P
>
> Hey, remember we are supposed to be anti-FS knights, ok? :)
Ok. I'll give a real Use-Case and you look at it with your critical glance.
Maybe we are too input-module-minded after so many discussions and are
FS-infected.
Forrest's Use-Case
==============
Prerequisites
---------------------
Forrest has skinning system which now uses Ant filtering tokens in the
sitemap to define which skin to use, e.g.:
<map:transform src="skins/@skin@/style.xsl" />
Everyone agrees that this looks ugly and the skin name is hard-coded in the
resulting sitemap, which makes it impossible to change the skin at runtime
in the web-app version of Forrest. It also requires the source to be copied
to the 'build' directory and makes development a little more difficult (you
should run build after every change in the sitemap, while Cocoon could
reload it from the source directly).
Solution
-------------
Using a special input module makes sitemap look much better:
<map:transform src="skins/{skin:name}/style.xsl" />
Everyone agrees with this one too.
Chaining
-------------
Where does the skin module get the configuration data? There are several
places where it can get it:
- a request parameter (?skin-name=forrest-site)
- a session attribute (after the user has set this somewhere else)
- a cookie (to retain user's settings between sessions)
- a config file (customized default values for a specific project)
- configuration in cocoon.xconf (global default, used if customized
config is not found)
So having already input modules for 'request-param', 'session-attr',
'cookie' and 'xml-config' we can use a meta module which simply traverse
it's child input modules and tries to get the value from them. Then it was
proposed this approach:
<component-instance class="MetaModule" name="skin">
<input-module name="request-param"/>
<input-module name="session-attr"/>
<input-module name="cookie"/>
<input-module name="xml-config"/>
<input-module name="defaults"/>
</component-instance>
> So, what the heck is this 'glue' thing?
So, the 'glue' is a meta module which has other input modules as its config.
>
> And why is Torsten is talking about "filters"? gosh, don't you people
> think we already have enough concepts and components and models and
> names? (expecially when they are so widely used that nobody
> really knows
> if the user already knows the concept or has to relearn it
> from scratch)
I have no idea what the 'filter' can mean in this context, but from the
user's point of view, input modules act as namespaced sitemap variables,
e.g.:
<map:transform src="{request-param:stylesheet-name}.xsl" />
So, instead of using a wrapper action to get a request parameter value in
the sitemap, the user will simply use this short version.
>
> Sorry for playing devil's advocate, but that's my
> self-inflicted role,
> you know? :)
We definitely need some critics.
Konstantin
>
> --
> Stefano Mazzocchi <[EMAIL PROTECTED]>
> --------------------------------------------------------------------
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, email: [EMAIL PROTECTED]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]