[Zope-CMF] Re: [Zope3-dev] Content Types: What are they? Do we need them for Zope 3

Jeffrey P Shell jeffrey@cuemedia.com
Mon, 18 Nov 2002 08:06:31 -0700


On Sunday, November 17, 2002, at 06:24  AM, Paul Everitt wrote:

>
> On samedi, nov 16, 2002, at 22:13 Europe/Paris, Martijn Faassen wrote:
>
>> Jim Fulton wrote:
>>> Historically, Zope has a notion of "type" that has not been
>>> very well defined.
>
> Two additional wrinkles on this:
>
> 1) "Widgets".  The work by Shane on "page designs" concentrates on a 
> higher-level abstraction for how Site Developers construct sites.  
> Shane blessed this sentence (my words) as the starting point:
>
> "A UI for Site Developers is *one of* the user interfaces needed for 
> Zope 3.  With this UI, a Site Developer will customize existing 
> components and work them into pages in the site structure.  Page 
> designs can provide the visual and logical model for how a Site 
> Developer assembles the site."
>
> For instance, a widget might be a Poll that you drag from a palette of 
> widgets, drop in a column on a template, and fill in the properties to 
> configure.  (Shane, is this right?)
>
> It isn't clear at what stage we are in this page design thinking.  But 
> if an idea such as "widget" emerges, it will be another facet in the 
> discussion of content type vs. meta_type vs. portal_type vs. component 
> (interface).

That sounds awfully compound document-ish.  And in my own 
implementations I've been playing with over the course of the year, 
based on OpenDoc, I call these things "Parts" - documents are built out 
of parts.  And - to make things helpful or confusing, I have Part Types.

Part Types are actually identified by a Major/Minor pair.  A generic 
text handling part can register itself as 'text/*', while an XML 
specific text part can register itself as 'text/xml'.  When adding new 
Parts to Part Containers, the program can ask for the generic or 
detailed variety.  (And, actually, the default 'text/*' Part uses its 
minor mode to find the right Handler to parse and interpret the text 
passed in, and can dynamically change this over time).

I've had some success using this system of Part Type descriptors.  
Combined with Interface identifiers, it gives me some pretty rich 
querying options for digging through a complex document structure.

--
Jeffrey P Shell
jeffrey@cuemedia.com