Software Development

Take advantage of the Zope open source CMS framework

The Zope open source CMS framework does not conform to the traditional LAMP model, but that doesn't mean developers should shy away from it. Find out what makes Zope different from other OS-CMS frameworks and why those differences may prove useful.

In response to my recent article on open source CMS solutions, members noted that I didn't mention the Zope Content Management Framework and one of its associated content management systems—Plone. So in this article, I’ll take a closer look at these options.

What is Zope?
Zope is not based on the LAMP (Linux, Apache, MySQL, PHP) development model that I know and love. It is written in Python with its own Web server (Zserver) and database capabilities (ZODB). However, it does connect and work well with Apache and MySQL.

Instead of PHP, Zope uses something called DTML, which is Zope's own markup language. DTML is similar to PHP, but it is used only for the data presentation layer. Zope also has a tool called Zope Page Templates (ZPT), which uses XML-savvy Template Attribute Language (TAL). TAL allows editing of page templates in standard WYSIWIG editors.

Zope itself is not a content management system—it is a Web application server. That is the fundamental difference between Zope and other products like PHPNuke, which is just a CMS. You can customize Zope into a full-featured CMS, and there are plenty of tools to choose from.

The Zope Content Management Framework
The Zope Content Management Framework (CMF) is a development framework you can use to build a customized CMS. The CMF sits on top of the Zope Core application server system. It is a robust offering of tools and services that includes group-based content management, a permissions-based workflow system, and a customization framework.

Zope CMF Services include:
  • MembershipServices
  • CatalogingServices
  • WorkflowServices
  • BasicContentServices
  • SiteDesignServices
  • IntegrationServices
  • DiscussionServices
  • ArchivingServices
  • SyndicationServices
  • RatingServices
  • TestingServices

When I first started working with the Zope CMF, I have to admit that my lack of Python knowledge worried me. But Zope relieves the anxiety by using something called ZClasses, which are extensible, sharable, persistent objects. Zclasses are managed via Zope's Web management browser interface, so you don't have to know much Python.

Zope derivatives—CMS implementations
Not everyone needs to build a customized CMS. Unless there is something unusual about the content management needs of your environment, you'll be well served with an out-of-the-box implementation. But customization is necessary for certain large enterprise-wide deployments with unique needs. That's where the power of a content management framework pays off.

Plone
Plone is a CMS based on the Zope CMF. Of all the CMS systems that I've tried, Plone was the fastest to set up. It probably has something to do with the fact that it sits on top of the Zope CMF (which I had already installed).

I actually had a client request a Plone CMS specifically because they had read/heard that it was the system that NASA was using. (NASA is probably using all manner of systems.) Unlike PHPNuke, Plone is not a module-based system; it's page-based. It may be more usable because of its similarities with off-the-shelf editors like Microsoft FrontPage and Dreamweaver.

How Zope fits in
Zope is an application server, it has a content management framework, and there are ready-built CMS implementations (Plone) for rapid deployment. Depending on your needs and requirements, I can hardly imagine a CMS project that couldn't be built with Zope.
0 comments

Editor's Picks