[Zope-CMF] Store development with CMF (new guy)

Shane Hathaway shane@zope.com
Tue, 27 May 2003 17:18:35 -0400

Kari-Hans Kommonen wrote:
> hi Shane, great info!
> ...Is there a place where the logic that you explained here (and other 
> similar stuff) is documented so that one can avoid making bad design 
> decisions (such as the kind you are advising against)?

I don't know of such a place.  I guess that's the problem--I don't know 
where that kind of information should go.  I foolishly assumed the 
design was obvious.  Sorry.

Let me see if I can think of some other unstated rules:

- The whole CMF factory mechanism (initializeBasesPhaseX, ToolInit, 
ContentInit) is worthless and unnecessary.  Do not use it.  Its *only* 
purpose is to avoid the need to create a ZMI factory form for every tool 
and content type, but it turned out to be a large, baroque mess.  Use 
standard Zope factories.  You'll have to create your own factory forms, 
but you'll be better off that way--you'll be able to understand your own 
code. :-)

- Never assume there is a folder called "Members".  You are supposed to 
call portal_membership.getHomeFolder().  If you need a list of members, 
use portal_membership.listMemberIds().

- It should be possible to delete the registration tool to disable new 
user registration.