[Zope-CMF] content management framework question / musings

Kent Hoxsey khoxsey@caspiannetworks.com
Thu, 26 Jul 2001 10:24:10 -0700


Frank McGeough wrote:
> 
> The CMF allows a user to login, to have an area that they can add content to
> and that works o.k.
> 
> My question is, how does all this content actually become part of a whole?
> If you take content like News -- it is totally integrated. That is, a user
> adds a News Item and once it's published, it's available. It doesn't matter
> if the user decides to move it to another folder --- the News Item is still
> picked up and displayed in the proper places. Events are somewhat similar.

Not sure how much others follow this same pattern, but we tend to
approach everythin inside Zope as a search for objects. The examples
you list know how to do what you mean because they're searching for a
particular Type in the catalog (as well as checking publishing status
and user entitlement).


> For document content things are left to the user. Search provides a
> wonderful level of integration, of course, but that is a (very useful but)
> poor substitute for intelligent organization (in my opinion). 

I'm not sure I completely understand what the term 'intelligent
organization' means in your context, but it seems to me that neither
Zope nor the CMF restrict you in the manner you organize your site,
content, or publishing rules.


> Since this is
> the case it seems like my users should actually be roles.  That is, if I was
> working on a newspaper type model --- I would have a sports user, an
> editorial user, etc. The main menu would link the person browsing the site
> to these sections. The section would have a main DTML document that would
> layout the section and show the current available content. This main DTML
> would always be available. The main DTML document would have to have logic
> in it to iterate through the user (role) folders getting the proper content.

So far, what you are describing sounds like a skinning issue in CMF,
and maps pretty directly to the work we're doing on our intranet site.
At this point, we can represent all internal pages from a single
index_html method that renders appropriate content and 'sections'
based on folder properties, available content, and user role.


> If I was doing a daily type of publishing environment then I could picture
> having a folder that writers would work out of for the next days article,
> and having a folder that is the current days content. I would then have a
> deadline and have a program that would move the current days content to an
> archived folder, move the working area content into the current days folder
> and leave the working area clean for the next days work.

We thought about doing something about the same as you describe, and
then realized that the effectivity dates in the metadata for the
portal types makes archiving a skinning issue. Since the items know
their own expiration, all you need to maintain different 'current' and
'archived' views are a pair of skinning methods that search for
different effectivity windows, and present all objects found. In other
words, 'current' searches for (start_date<now) and (end_date>now),
while 'archived' searches for (end_date < now).

k1