Re: some questions about bxcms architecture

Christian Stocker <[email protected]> Wed, 22 Mar 2006 10:34:04 +0100
Newsgroups gmane.comp.cms.bitflux.general
Organization Bitflux GmbH
Message-ID <[email protected]>
Sorry for not anwering. We're really busy right now. I'll try to find 
some time. But you're questions are not answered in 5 minutes or so :)

chregu

On 20.3.2006 11:00 Uhr, qMax wrote:
> Hi.
> 
> There're some points in bxcms design that confuse me a little.
> I'd be happy if someone can find a pair of minutes and explain these
> moments for me.
> 
> 1. plugins/resources
> The role of (non-admin) plugins is mainly to generate content, adding
> resources (in id-space), and sometimes provide links to editors of this content.
> They map request into plugin-specific content id and responcible to
> retrieve it by id.
> For static content, it is stored in resources, as files in filesystem,
> plugins delegate getContentById to bx_resource classes.
> For dynamic content, it seems that it's intended to be retrieved through
> php-streams, plugins delegate getContentById to bx_stream classes.
> 
> Now if i want to store (the same images or xhtml pages) resources in database,
> I can write bx_resource that retrieve content from database.
> Or, they just provide contentURI referring to some database-related
> stream.
> But anyway i have to hack all plugins to make them use such resources,
> since classes are hardcoded in plugins code.
> I cannot just configure plugins to use another (re)source.
> 
> Should i implement another stream+resource+plugin for this situation ?
> 
> Reallife possible example: retrieving info about people from ldap.
> 
> 2. output-mimetype property
> Some resources has this property, but it is not clean what does it indicate.
> 
> When having some resource, a user might want to request it in various
> formats: txt, png, pdf, rtf...
> So mimetype of resulting output differs for the same resource.
> 
> In code it is mainly used just to tell httpd/unix-directory and
> text/html from other types.
> (in bx_plugins_tree, bx_plugins_sitemap, bx_plugins_fulltree,
> popoon_components_generators_admintree, )
> and to match if plugin handle this type (bx_plugins_subcontent,bx_tree).
> 
> Does it have some other use ?
> 
> 3. sitemap vs configxml.
> If i figured out right, the purpose of collection .configxml file is:
> - matchi request and select a plugin that provide content
> - provide parameters for plugin
> - selecting xslt theme stylesheet
> - setting pipeline parameters (used only for xslt transform)
> - selecting filters
> 
> These points are exactly what cocoon/popoon pipelines are designed for:
> - map:match used to select pipeline based on request (or some other criteria)
> - map:generators used to generate content
> - map:transformers used to xslt transform and filtering
> - map:paramater used to provide parameters to generators or transformers.
> 
> So, theoretically, a random configxml may look like:
> <sitemap>
>  <match type="uri" pattern="*/**">
>    <!-- stuff for children collections -->
>  </match>
>  <match type="uri" pattern="$filename.$ext">
>    <aggregate element="bx">
>      <generate type="plugin" name="navtree"/>
>      <generate type="plugin" name="$somepluginname"/>
>    </aggregate>
>    <call-resource name="theme-transform">
>      <param name="xslt" value="$stylesheetname"/>
>    </call-resource>
>    <transform type="$filtertype" name="$filtername"/>
>  </match>
> </sitemap>
> 
> The configxml however, can be inherited and overloaded in child
> collections, which is somewhat tricky for sitemaps.
> Beside this and some trick about adminplugin
> ? what are advantages of using configxml-style instead of more clean sitemap-style ?
> 
> Thanks in advance :)
> 

-- 
christian stocker | Bitflux GmbH | schoeneggstrasse 5 | ch-8004 zurich
phone +41 44 240 56 70 | mobile +41 76 561 88 60 | fax +41 1 240 56 71
http://www.bitflux.ch | [email protected] |  GPG 0x5CE1DECB
-- 
bitflux-cms mailing list
[email protected]
http://lists.bitflux.ch/cgi-bin/listinfo/bitflux-cms