[Zope-CMF] Design approach questions: unique content-ish items?

Doyon, Jean-Francois jdoyon at NRCan.gc.ca
Fri Sep 14 15:21:28 EDT 2007


So, I have this situation happen often enough, and I'm not sure what would be the best way to approach it.  The context is a Zope + CMF (latest) framework deigned to host multiple sites, but where the content management part is purely internal, we manage sites internally, and the public facing part is not interactive to users, they can't log-in, register, or anything like that.

I have object types that need to exist just once, but need to do much more than a standard tool is expected to.

The basic example is the search functionality and user interfaces.  Less obvious is a key feature of one major client site where they have a mapping tool (as in geographical maps), and many other parts of the site revolve around it, link to it, etc ... It's in many ways a utility, but also a contentish/fodlerish type!

I cannot assume WHERE such an object might be wanted, one client site could want it in one folder, and another in the root (becaue of navigation, breadcrumbs, individual site layouts, etc ...).

With a mix of permissions, UniqueItem, export/import and so on, I can create objects that can be created only once, and act much like "singletons" but it's tricky and not quite proper ...

Now this utility concept comes along from the CA, and it's very handy.

The big problem for me seems to be that:

- They have to be in the root
- They're really meant for tools

I guess I'm wanting to have an object that is a hybrid tool/contentish object.  It provides functionality, but it also has a website visible interface (actions, templates, etc ...).  Also, it's not necessarily in the root.

Right now I use the catalog to "find" such objects, which is hardly elegant or efficient.

Also, some parts of these objects are user editable (notably the dublin-core stuff), so I really want it to be at least partially manageable by content managers.  They however would never need workflow functionality for  example.

The only thought I've had so far is:

- See if I can create a traditional tool, and then extend it with actions, views, etc ... I need to have CMF management interfaces, and have them appear though things like listFolderContents()

The simple example is the search stuff.  I have a search form, search results, etc ... build around a content-ish type that in turn uses portal_catalog.  This type should exist only once in the site.  It is in many ways a tool, though it has a user oriented web interface.  It also needs things like DC Metadata support (Corporate policy, ALL our web pages must have this), and maybe I want to let a site owner configure other properties of their instance of the search engine.

Of course, I can just try it, but I'm curious as to high level thoughts on this type of object, how it can or should be handled, if anyone has faced this before and how they approach it, etc ...

Of course, I can't see any way around utilities needing to be in the root :(  I suppose I can fake paths and breadcrumbs or some such thing if needed ...

Thanks, and a good week-end to you all!

Jean-François Doyon
Data Dissemination Division | Division de la diffusion des données
Data Management and Dissemination Branch | Direction de la gestion et de la diffusion des données
Earth Sciences Sector | Secteur des sciences de la Terre
Natural Resources Canada | Ressources naturelles Canada
Ottawa, Canada K1A 0E9
jdoyon at nrcan-rncan.gc.ca
Telephone | Téléphone 613-992-4902
Facsimile | Télécopieur 613-947-2410
Teletypewriter | Téléimprimeur 613-996-4397
Government of Canada | Gouvernement du Canada

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.zope.org/pipermail/zope-cmf/attachments/20070914/32f53a1b/attachment.htm

More information about the Zope-CMF mailing list