Monday, July 23, 2007

The search for the perfect ... CMS


I have built a few relatively small-scale websites in the past. Originally hand-coding in HTML, I have progressively adopted server-side technologies to create more interactive sites. In the attempt to reduce the amount of coding I have to do, I have tried a few well-known frameworks. Here is a taster of my discoveries so far - and a taste of what is to come.

HTML is all fine and good. A well though out combination of HTML and CSS can product an attractive, accessible and flexible website. With the right approach, the HTML can be tweaked to ensure it looks OK in all the major browsers and reads well without the styling. The down-side is that when there are more than a handful of pages, the maintenance becomes a real headache. A simple page layout change becomes a major reworking excercise.

Step in the CMS. Content Management Systems are, as the name implies, designed to manage website content. Typically, they allow the presentation to be separated from the page contents by using some form of templating. Most will offer on-line page creation and editing. Some are tailored towards simple blog sites; some are designed for complex business or community sites and include forums, and collaboration tools such as project management. For my own reasons - hosting, etc.. - I have stuck with frameworks implemented in PHP.

At the simple end, I have used Exponent. This offers online page creation and maintenance, to build a hierarchic site with automatically created navigation. Each page is effectively stand-alone and can include any number of page "modules". The supplied modules range from simple text to calendars, forms and forums. Exponent is easy to use, and has some 3rd party support - but is not very well known.

At the other endof the scale, there is Mambo. This is a large and comprehensive CMS. Content is abstracted from pages and can be listed blog-style, shown on "news" pages or single, full-page articles. Content is tagged by sections and categories. In addition to content, applications ("components") are supplied - including forums, polls and news feeds. Modules are also configurable and may be placed in "channels". Each channel corresponds to a position in the page template. Menus are managed separately and page templates can be associated with menu items - meaning that the same page may be presented in a totally different format by two separate menu items. All in all this is the full bells-and-whistles solution, but should be used with care as anything less than a fully thought-through deployment can look a total mess! A conservative deployment can be seen in natality. Mambo is very well supported by a hige number of 3rd party developers and is one of the best known CMS available.

My needs are somewhere between - which is why my search continues. Both of these offerings are mature and have been well developed. The down-side is that there are few innovative features, and almost no AJAX-type interativity.

The nirvana (NB: did you know "Teen Spirit" is a brand of deodorant in the US?) is a small, lightwieight, easy-to-use PHP framework which produces an attractive, accessible website which works in non-JavaScript browsers but adds all the interactivity for modern browsers. Maybe I'll have to write my own ...

2 comments:

Stray Taoist said...

All CMSes suck. Some just suck less than others. My weblawg is built (and has always been, since moving from my own written one way back when) in MT. So then I can hack plugins easily. (The footer of my weblog is a wee bit of perl to go fetch, resize, slap into mirror urls my flickr pics.)

As for hosting, I recommend dreamhost. Cheap, excellent and if you ask me for a referrer code, even cheaper and excellenter. *And* you get free domains when you sign up.

But don't be a (real) programmer. There is no need to write you own. Says he who does just that. But no! Don't do it. People like zend these days, but that is for logins and all sort of extra gubbins. I guess it depends on your hosting, what you can install and so on.

For me, change bad. So I stick with MT.

Unknown said...

Sure - there's moveable type and Worpress (which I use for my wife's blog). As I'm sticking with PHP, I can *always* fiddle with it and add in my own widgets. Not that I have, of course .. but I like to know that I can.

I *am* a real programmer - I can't help it. But I'm a programmer with little time on his hands - so I go for pre-rolled as much as possible ...