[Zope] CMF tutorials and documentation

sean.upton@uniontrib.com sean.upton@uniontrib.com
Thu, 27 Feb 2003 11:13:16 -0800


I think it is hard to get a complete tutorial on the CMF, because there is
at least a book's worth of stuff to learn, if you really want to master it.

First suggestion: start with Plone, which is an excellent CMF-based CMS
(http://plone.org).  It is a much more complete starting point than
CMFDefault, and you can spend your time learning to code for the framework
rather than having to rework the UI a ton.  Plone also has active
documentation projects on Plone.org, and a very helpful IRC community on
#Plone or irc.freenode.net, as well as an active plone-users mailing list.  

The CMFTypes project (in the CMF Collective project on sf.net) may also
lower the bar for creating CMF content types, which could make things
easier.  It currently has documentation, but the docs are a bit outdated as
CMFTypes is maturing.

Approach I would take for learning CMF for users:
=> Start with Plone! Much less work to get something usable.  A lot of focus
on good general principles in interactivity design have gone into creating
the Plone UI.
=> Read the Plone book http://plone.org/documentation/book/
=> Get familiarized with where the CMFDefault/Plone content types don't meet
your needs, and know where to find 3rd party products that solve those needs
or know when to talk to a developer to get something custom put together.
=> Take a look at all the 3rd party (mostly Plone-enabled) CMF
projects/products in the CMF Collective Project CVS on sourceforge (or at
plone.org/collective/).

Approach I would take to learning CMF for developers:
=> Make sure you are comfortable creating Python Products in Zope
=> Understand that the ZMI is a legacy UI, in CMF tools and content types it
will only be used for administration purposes.  This has the upside of
lighter-weight code when you are creating CMF tools and content types
because you don't have to do as much ZMI UI stuff.
=> Keep in mind this conceptual principle: you will be creating two types of
components in the CMF: content components and software components.  Your
application is the glue that binds them together, and your application is
usually made from lightweight, TTW code and presentation components residing
in the skins folders in the skins tool.  So in a MVC-like sense, the model
is content components in folders or repositories, and software components in
CMF tools in the root of the CMF site; the controller is the collective skin
python scripts in your application that do any of the application specific
control of the content or the tools; the presentation is the use of ZPTs,
DTML, global images, etc in the skins folders that render the application.
The big thing here is to understand that the CMF skins are really
'application suites' - each skin is its own app suite, and one CMF 'site'
can have multiple app suites or skins.  Each skin can obviously do multiple
things, and the ability to reuse presentation and 'controller script'
components from one application/skin in another is enabled by the way the
portal_skins tool layers folders in an ordered manner and allows common
functionality to be shared and generic functionality to be superceded by
more specific.
=> Take a look at some of the howtos at:
http://plone.org/documentation/howto/
=>
http://plone.org/documentation/howto/FrontPage/HowToWriteYourOwnContentType
=> Familiarize yourself with the various aspects and/or tools of the CMF one
piece at a time: the skins tool, workflow, etc.
=> For what its worth, digest docs on http://cmf.zope.org/doc
=> Subscribe to the Zope-CMF and Plone-users list and read messages of
interest to you.
=> Hang out in #plone and #zope for help when you need it along the way.

Over the last year, I've had to learn a lot of the CMF development story the
hard way, and as a busy person, I've had to be a bit patient.  Over the next
few weeks, I'm putting together CMF training materials for internal training
sessions at my company, and would be happy to share any slides/documents I
put together if you want to mail me off-list in 2-3 weeks.

Hope this is at all helpful... Good Luck,
Sean

-----Original Message-----
From: Celula Research [mailto:fb@celula.com]
Sent: Thursday, February 27, 2003 9:52 AM
To: zope@zope.org
Subject: [Zope] CMF tutorials and documentation


Hi all:

I wonder if someone can tell if there is a complete tutorial on CMF ?

We have been browsing and peeking at the CMF's dogbowl and have (sadly)
discovered that CMF's documentation resembles too much what Zope's
itself documentation was a few years ago:

There is no consistency in the docs (CMF), they are all scatered around
in an -apparently, at least- no sense way,  they refer to older
versions...

We are just trying to implement first CMF based systems, nevertheless
got stuck again with the very high slope learning curve.... For the IT
guys, "the source is their best friend", we know, but that it not the
case for the end user-ish side of things.

Any ideas, sugguestions, references or comments, are welcome to the
list.

Thanks in advance.

Ed


_______________________________________________
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope-dev )