Main menu

"Goodbye, Jean-Luc, I'm gonna miss you. You had such potential. But then again, all good things must come to an end."
- Q, Star Trek: TNG

Adventures in Plone!

by Ken Newquist / January 13, 2004

"Plone!" screamed the Tick as he attempted to hack his way through the wilderness of Content Management Software. "Plone!" he shouted, as he finally found a solution that looked like it would work. "... plone..." he whimpered, as he realized just how freaking complicated process of customizing an open source CMS would be.

Of course, he had Little Wooden Boy to help him out. Me? All I've got is a battered and worn Apple cap that was once black, and is now a purplish grey. Oh, and my iBook.

The iBook's actually worth more than an afterthought. It is onto my iBook that I've installed Zope (an open source application server) upon which the content management software Plone is built. It's the machine that I'm spending most of my time messing around with Plone on (though I've also installed it on a Windows XP machine and Power Mac)

How -- and why -- am I messing around with Plone? Well, there's my innate passion for all things technological, but the real reason is that I want to replace the homegrown CMS that's driving the dynamic portions of the university Web site I administer. There's also a remote possibility that I might replace the system driving Nuketown. To start, I spent a heck of a lot of time looking at CMS solutions. I dismissed the commercial systems as being too expensive, and decided to check out the open source solutions (which also complements our existing university web tools, most of which are open source). Of these, Plone seems the strongest.

The CMS has just about everything I was looking for, including the ability to manage multiple section and multiple users. Using Nuketown as an example, I could use Plone to recreation Nuketown's various sections (News, Reviews, Editorials, etc.) and then assign people to edit them. Further, I could also assign contributors, who could turn in stories that wouldn't appear until approved by editors. It's also highly customizable, which is a big plus.

All of that sounds great -- and it really is great -- but there's a problem. How the heck do I go about transforming Plone from its slim, utilitarian default mode into one that matches the look and feel of the sites I'm managing?

The answer is ... there is no easy answer. Oh it's easy to make minor stylistic changes to Plone -- with a little research, you can easily upload a new logo for your site and tweak the site's stylesheets to reflect your preferences. If you're interested, you can learn how to do this by reading Chapter 6 of the Plone Book, particularly the section on stylesheets. If you do play around with this note that the key to changing the color and fonts used on the pages is "stylesheet_properties" within plone/plone_skins/plone_styles/

But when you want to do something more complicated -- like start tearing apart the pages and replacing them with your own -- the documentation falls apart.

For example, I wanted to add a section called "editorials" to my Plone site, and then add a "tab" for that directory. Good ol'Chapter 6 of the Plone Book tells you how to do this -- first thing you do, it says, is to use the Plone interface to create a folder called "editorials" at the root level of the Plone. Ok, makes sense ... but how the hell do I do that? Nothing in the documentation explicitly states how to do that -- in fact, if you look at Chapter 2, "Using Plone" all of its document creation info deals creating content in your personal directory.

I finally found out that if I clicked on the site name ("Nuketown Beta") I was able to see the contents of the entire Web site ... and could add new folders there. Perhaps the creators felt that this was too blatantly obvious a thing to document. Maybe so -- maybe I was just being exceptionally dense this morning, but I don't think so. This is the sort of thing that should be covered explicitly in the documentation.

I ran into this time and again with the Plone documentation -- one section will refer to an apparently simple technique, but then neither explains the technique or includes a link to a page defining that technique. Another good example? Once I finally got the "Editorials" folder set-up, I wanted it to display an index of articles held by that directory. According the page that let me choose "folder" as an option, the folder could either have a configurable view, or a default view that would list the articles. Ok, great, but how do I configure that custom view? The docs are mum on the subject.

Indeed, customizing the CMS beyond the default is something that's covered only spottily, with much of write-ups coming from off-site resources. Some of these, like links to Zope.org, are to be expected and its always good when you can point to a few overachievers to highlight principles certain principles. But what Plone desperately needs is a full-fledged customization walkthrough that goes into the nitty-gritty of taking the default installation and transforming it into something that makes use of custom templates and stylesheets. Something like that would go a long way to promoting its use among mid and large sized organizations that can not settle for the default installation or minor CSS tweaks.

Even without such a walkthrough, Plone looks like it will meet my needs. So I'm going to spend another few days trying to hack my way through its innards, figure out where the templates are hidden, and determine once and for all if this thing can really do what I need it to do. And maybe, when all is said and done, I'll be the one who writes the walkthrough I'm so desperate for.