[development] CCK in Drupal 6
ber at webschuur.com
Wed Feb 7 09:36:32 UTC 2007
Nice post. And not very different from my future plans with flexinode, in
Op dinsdag 6 februari 2007 13:47, schreef adrian rossouw:
> CCK exists of the following things for me :
> 1. Field Types
> 2. widgets and formatters
> 3. Data model - consisting of the field types.
> 4. Query builder - crud functions. - generates query from data model.
> 5. Configuration interface - builds data model
However, one thing I /really/ miss in the architecture of CCK, and in FAPI,
and in your post too, is he view (as in theme/display) layer.
We agree that data != presentation, right?
We render "Submitted by Bèr Kessels on Sat, 02/03/2007 - 13:34." and not
"Submitted by 12 on 1172793600"
Data is 12, the uid. But what we display is the user name (or whatever we
craft from it) with a link.
I think having this is crucial, and in the ERD for flexinode I have called it
the 'display profiles'. In both the FAPI and CCK this is spagettied trough
the code. Some parts in the output are coupled to the widget (!?) in the form
of config settings. Others are left to the type of widget. Again others are
left entirely to the theme. The lack of vision and therefore consistency
bothers me, as a themer. We should IMO at least *think* about how and where
to handle this.
In any case: Flexinode will, at some point, use display profiles. How exactly
they are going to be coded: I have no idea. But what they *are* is clear to
A simple configurable, database stored 'thingy' that tells what theme function
(callback handler id) should be called to render the data.
$node->date is the data. The display profile tells "because of Foo and Bar,
use 'theme_date_ago()' with arguments array('uid'=>$node->date)".
Maybe this concept itself is enough to keep in mind for a next version of
BTW: this is only a small part of a larger plan, for example:
In case of flexinode, the admin can choose, in the field-configuration , what
theme function to call for a certain field. That is the "Foo and Bar".
However, this should be overridable by modules. So that I can say: I am a
stubborn module that cares about privacy. For IP range xyz, don't
use "theme_linked_username()", instead, use theme_garbled_username". This
will be a hook. In the ERD that is the 'display handler', wich wraps around
the theme functions itself.
Drupal, Ruby on Rails and Joomla! development: webschuur.com | Drupal hosting:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 189 bytes
Desc: not available
Url : http://lists.drupal.org/pipermail/development/attachments/20070207/d45ec11f/attachment.pgp
More information about the development