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 ...