In our series of CMS Week articles, the system we're reviewing today, Plone, is a kind of special animal. First, it's not everybody's CMS — understand: it will not be easily tamed. Second, it won't get satisfied with a basic PHP/MySQL environment. It'll require more than that: Python and Zope, to be exact. So, is it worth learning Python? (because you'll have to!) Let's find out.
What is Plone?
Plone is an open-source CMS built on top of Zope, a web application server and development system written in the Python programming language. Python was conceived in the late 1980s, Zope has been around since the late nineties, and Plone was created in 2001.

Plone is made such that all its information is stored in Zope's built-in transactional object database (ZODB), but you can also use the relational database of your choice, if you prefer so. Plone comes with installers for Windows, Mac OS X, and Linux, along with other operating systems. It is available in over 35 languages, complies with W3C's XHTML specs and follows the government standard WAI-AAA and U.S. section 508, which allows people with sight disabilities to properly access and use Plone-powered websites. It is released under the GNU GPL license and is free for personal and professional use.
Plone is powerful. There's quite an impressive power under its hood, and it can be used for very large projects. Some famous companies and organizations use it for their online presence or their intranets, such as the Free Software Foundation, Novell, Akamai, Yale University or the NASA. Big names!
What's in Plone?
The easiest way to get started with Plone is to use an all-in-one installer. Standalone installation packages are available for all major operating systems, including Windows, Mac OS X and several Linux distributions. The raw Plone Products are also available for download, and are easy to add into a standard Zope installation. However, while Plone is relatively easy to install and has many features out-of-the-box, the learning curve for building your own extensions is relatively steep, requiring good knowledge of Python, as well as web programming more generally.

The core functionality provided by Plone (form validation, content type definition via Archetypes, etc.) automates much of the donkey work that would be involved in building a CMS from scratch. So even if you don't do any custom programming, the default installation provides a very full-featured web application platform.
Like the other open-source CMS available on the net, Plone can be extended by the mean of plug-ins and themes.
The Plone website contains a full section devoted to the customization of your website. You can use Plone as a blog, build a photo gallery, add AJAX capabilities, setup an e-Commerce, integrate Google Maps features, and even interface your site with an Asterisk-based PBX. The documentation also provides a Plone Developer Reference if you want to build your own components — but remember, you'll have to master Python/Zope to do that.
On the skinning side, there are a lot of templates you can use to theme your website. And if you feel like giving your pages an unique look, you can make your own skin either by editing the CSS and re-using the XHTML from the default templates, or by choosing to rebuild just about every line of XHTML from scratch. Basically, there is no limit to how far you can customize the aspect of your website.
On another level, Plone has a very flexible and powerful templating system called ZPT (Zope Page Templates), based around TAL (Template Attribute Language) and METAL (Macro Expansion Template Attribute Language), both of which are specific to Zope. These languages provide facilities for pulling elements from the object database and displaying their properties within HTML (similar to how PHP can be used to pull data from a database like MySQL and create HTML pages from it).
Plone has a flexible and fully-featured workflow system, which allows private editing of the new content items, followed by submission to the review queue, then publication once approved. At each stage of the workflow, user and group permissions can be set to define who can move the item onto the next stage (or back to a previous stage if it is rejected). Workflows are also heavily customizable, and a wide range of scenarios can be specified.
You can add your own content types to the default Plone types through a framework named Archetypes; new types are defined in a text file ("schema") which specifies the fields the type has, the kinds of content allowed in those fields (e.g. text, HTML), the widgets to present when those fields are edited (e.g. drop-down box, radio buttons, text field), and the validation rules to be applied when new instances of the type are created. Plone uses the schema file to generate all the forms necessary for updating, deleting and adding instances of the type, and then handles all modifications automatically.
The Plone admin interface is exactly what you can expect from a product of this category: clean, effective and straightforward. It provides a comprehensive overview of the core features, and all the functions are organized for quick and easy operation.
Plone's Main Features
- Inline editing
- Working Copy support
- Automatic locking and unlocking
- Collaboration and sharing
- Versioning, history and reverting content
- Visual HTML editor
- Personalized content types
- Workflow capabilities
- Authentication back-end
- Full-text indexing of Word and PDF documents
- Presentation mode for content
- Support for the search engine Sitemap protocol
- Wiki support
- Auto-generated tables of contents
- Portlets engine
- Multilingual content management
- Prepublishing
- Powerful graphical page editor
- Caching proxy integration
- Drag and drop reordering of content
- XML exports of site configurations
- Enhanced customization capabilities
- Standards-compliant XHTML and CSS and accessibility compliant
- Automatic image scaling and thumbnail generation
- WebDAV and FTP support
Strengths
- Customization options in all features
- Numerous free add-on products
- Available on almost any OS
- Fairly simple installation
- Increased accessibility
Weaknesses
- Requires Python/Zope environment
- Requires web programming skills
- Learning curve
- Not enough documentation
Final thoughts
Plone would be a good choice for any enterprise willing to setup a website built on an extremely flexible, scalable CMS. Relying on the efficient Python/Zope duo, it ensures that developers will stick to object-oriented programming and modern programming techniques (such as the use of XML, or separating content from presentation). But as Rome wasn't built in a day, mastering Plone will certainly take time; although you may mess around in the admin module right after the installation is complete, you will need to spend hours to understand all its (many) capabilities. We wouldn't recommend it to people looking for a simple CMS or an advanced blogging solution, since they would obviously be using only a fraction of its potential — which, let's admit it, would be a shame, when we consider what Plone is capable of!
Links
» Download Plone
» Plone website
» Plone documentation
» Plone add-ons
» Plone community forum
10.05.08 |
CMS |
0 |
del.icio.us
Stumble
Digg
Technorati





RSS/Atom













Comments
No comment. Nada, niente, nothing.
Wanna say something?