From: "Jeff Turner" <[EMAIL PROTECTED]>
> On Thu, Dec 19, 2002 at 03:09:22PM +0300, Konstantin Piroumian wrote:
> > From: "Jeremy Quinn" <[EMAIL PROTECTED]>
> > > On Thursday, Dec 19, 2002, at 11:48 Europe/London, Christian Haul
wrote:
> >
> > <snip-to-save-space-and-time />
> >
> > > >
> > > > which would result is {chain:other-var} being looked up as
> > > > {myxml:/root/section/other-var} and {request-param:other-var} but of
> > > > course {chain:my-var} would turn into {myxml:/root/section/my-var}
> > > > which is not desired here. SimpleMappingMetaModule supports some
more
> > > > mapping options if you need it.
> > > >
> > > > Chris.
> > >
> > >
> > > WOW! This stuff is amazing!
> > > And very complicated!
> >
> > Agree.
> > The mapping seems a little complicated to me. Can't we implement it a
little
> > different, something like that was proposed by Jeff Turner:
> >
> > <component-instance
> > class="org.apache.cocoon.components.modules.input.ChainMetaModule"
> > logger="core.modules.input" name="chain">
> > <input-module name="request-param" />
> > <input-module name="myxml" map-to="/root/section/{0}"/>
> > </component-instance>
>
> What's implemented currently is flexible enough to support two models:
>
> 1) Each IM is defined separately:
>
> <component-instance
>
class="org.apache.cocoon.components.modules.input.SimpleMappingMetaModule"
> logger="core.modules.mapper" name="mapper">
> <input-module name="site"/>
> <prefix>/site/</prefix>
> <suffix>/@href</suffix>
> </component-instance>
>
> <component-instance
> class="org.apache.cocoon.components.modules.input.XMLFileModule"
> logger="core.modules.xml" name="site">
> <reloadable>true</reloadable>
> <file src="cocoon://samples/link/linkmap"/>
> </component-instance>
>
> Here, both {site:/site/index/@href} and {mapper:index} will refer to the
> same node in the XML file generated by
> http://localhost:8080/samples/link/linkmap.
Great!
>
> (incidentally, isn't the fact that XMLFileModule can use cocoon: protocol
> incredibly cool?:)
Yes it's cool ;)
>
>
> 2) When a meta module 'uses' another module, it can override that
> module's configuration. For example, let's declare an unconfigured
> SimpleMappingMetaModule and configure it inside a ChainMetaModule:
>
>
> <component-instance
>
class="org.apache.cocoon.components.modules.input.SimpleMappingMetaModule"
> logger="core.modules.mapper" name="chainmapper"/>
>
> component-instance
> class="org.apache.cocoon.components.modules.input.ChainMetaModule"
> logger="core.modules.input" name="mapped">
> <input-module name="request-param"/>
> <input-module name="request-attr"/>
> <input-module name="session-attr"/>
> <input-module name="chainmapper">
> <input-module name="site"/>
> <prefix>/site/</prefix>
> <suffix>/@href</suffix>
> </input-module>
> </component-instance>
>
> Again, {mapped:index} would refer to the same thing as
> {site:/site/index/@href}, unless, say, you added ?index=bob to the URL
> and the request-param kicked in to override it.
>
Fine!
> It's even possible to 'partially' configure a module in another one. Eg,
> the <input-module name="site"/> could be moved to the chainmapper
> definition.
Ok, you've both - Chris and Jeff - convienced me.
These thread could be a good source for a Wiki documentation on input
modules.
Listeners, are there any volunteer to write a summary? ;)
Konstantin
>
>
> I'm currently knee-deep in IMs implementing an
> InputModuleTransformer-based linking system for Forrest, after which I
> promise to help document this stuff (or rather, write lots and lots of
> examples).
>
>
> --Jeff
>
> > But of course, there's no much problems to use request parameters like
> > 'root/section/name'. This can cause a little troubles with JavaScript if
> > used as input element names.
> >
> > > Thank you very much for this explanation, I would not have groked
that!
> >
> > Yes, we need a more detailed documentation on modules, especially for
input
> > modules and their usage in the sitemap.
> >
> > Regards,
> > Konstantin
> >
> > >
> > > regards Jeremy
> > >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, email: [EMAIL PROTECTED]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]