Re: Re: Permission module and documentation
qMax <[email protected]> Tue, 31 Jan 2006 15:03:13 +0600
| Newsgroups | gmane.comp.cms.bitflux.general |
|---|---|
| Message-ID | <[email protected]> |
Sunday, January 29, 2006, 6:30:21 PM, Christian Stocker wrote:
CS> First, Popoon is not really A-whole-Cocoon-in-PHP :) We basically just
CS> took the pipeline idea and most of their syntax and used that for
CS> Popoon. Cocoon has many many more features than popoon ever will have
CS> (popoon is basically quite feature complete for our purposes), therefore
CS> you shouldn't be scared by the "big architecture behind" topic. Popoon
CS> is more or less just the
CS> pipeline/generator/transformer/serializer idea of Cocoon and not that heavy in requirements. We use Popoon just as
CS> underlying framework, 'cause it makes some stuff much easier. The heavy
CS> part happens on the Flux CMS level, which is on top of Popoon.
This means that idea of pipeline is NOT used as it could be in
cocoon-like application.
(Except for admin stuff)
Cocoon pipeline idea is:
1. mapping url space to resource space via matching pipelines in
hierarchy of pipelines in sitemap;
2. generating resource with generator;
3. transforming resource with transformer;
4. serializing output with serializer;
In bitflux this scheme is quite different, much of work is performed
in almost single pipeline with help of global action 'bxcms':
1. mapping urls to plugins is performed in .configxml in directory hierarchy
1.1 mapping urls to resources is performed in plugins code (as in blog plugin).
2. generating is performed in bxgenerator using bx_plugins and bx_resources
3. transforming is the step performed in pipeline,
using xslt transformer and bx_filters.
4. serializing is another popoon-clean step.
For instance - there is selecting pipeline fragment with parameter
'pipelineName', taken from collection/plugin code:
<map:match type="url" pattern="*">
<map:act type="bxcms">
<map:select type="any" var="{pipelineName}">
<map:when test="resourceReader">...reading resource...</map:when>
<map:when test="fo">...pdf output...</map:when>
<map:otherwise>...html output...</map:otherwise>
</map:select>
</map:act type="bxcms">
</map:match>
While following cocoon ideas it should be something like this:
<map:match type="url" pattern="**.html">
...html output...
</map:match>
<map:match type="url" pattern="**.pdf">
...pdf output...
</map:match>
<map:match type="url" pattern="**">
...default: reading resource...
<map:match>
CS> We have to change the sitemap or add new features to Popoon very seldom and if
CS> we have to, the framework makes it pretty easy. See for example qMax's
CS> addition of last week, all it needed on the Popoon level was an
CS> additional transformer.
I added pipeline fragment inside main pipeline.
Now if I want my resources to be rendered into .txt or .pdf as well,
i'll have to do some fandango in pipeline.
I'm not saying about drawbacks or advantages of either way,
neither insist on doing in cocoon way.
I just want to note that there are conceptual differencies.
Thanks for attention :)
--
qMax
--
bitflux-cms mailing list
[email protected]
http://lists.bitflux.ch/cgi-bin/listinfo/bitflux-cms