Wednesday, November 18, 2009

The Idea of a CMS to create website

Since you are reading this post, most likely you have already decided to build or use a CMS. But before we go into any detail, it is worth spending some time presenting a clear picture of where we are and how we got here. To be more precise, I will describe how I got here, in the hope and expectation that at least some aspects of my experiences are quite typical.

The World Wide Web (www) was created by Tim Berners-Lee as a simple markup language that exploited the internet to achieve the sharing of academic papers. It performed this useful function for some years while the internet remained relatively closed, with access limited primarily to academics. As the internet opened up during the nineties, early efforts at web pages were very simple. I started up a monthly magazine that reflected my involvement at the time with OS/2 and wrote the pages using a text editor. While writing a page, a tag was needed occasionally, but the work was simple, since for the most part the only tags used were headings and paragraphs, with the occasional bold or italic. With the addition of the odd graphic, perhaps including a repeating background, the result was perfectly presentable by the standards of the time.

But that was followed by a period in which competition between browsers was accompanied by radical development of complex XHTML to create far higher standards of presentation. It became much harder for amateurs to create presentable websites, and people started to look for tools. One early success was the development of Lotus Notes as a CMS, by grafting XHTML capability onto the existing document handling features. While this was not a final solution, it certainly demonstrated some key feature of CMS. One was the attempt to separate the skills of the web designer from the knowledge of the people who understood the content. Another was to take account of the fact that websites increasingly needed a way to organize large volumes of regularly changing material.

As XHTML evolved, so did the servers and programs that delivered it. A significant evolutionary step was the introduction of server side scripting languages, the most notable being PHP. They built on traditional "third generation" programming language concepts, but allied to special features designed for the creation of XHTML for the Web. As they evolved, scripting languages acquired numerous features that are geared specifically to the Web environment.

The next turning point was the appearance of complete systems designed specifically to organize material, and present it in a slick way. In particular, open source systems opened website building to people with little or no budget. That was exactly my situation a few years ago, as a consultant wanting a respectable website, easily maintained, but costing little or nothing to buy and run. A number of systems could lay claim to being ground breakers in this area, and I tried a few that seemed to me to not quite achieve a solution.

For me, the breakthrough came with Mambo 4.5. It installed in a few minutes, and already there was the framework of a complete website, with navigation and a few other useful capabilities. The vital feature was that it came with templates that made my plain text look good. By spending a small amount of money, it was possible to have a personalized template that looked professional, with no special skills needed to insert articles of one kind or another. Mambo also included some simple publishing to support the creation and publication of articles. Mambo and its grown up offspring Joomla! have now become well known features in the CMS world.

My own site relied on Mambo for a number of years, and I gradually became more and more involved with the software, eventually becoming leader of the Mambo development team for a critical period in its development. For various reasons, though, I finally departed from the Mambo organization and wrote my own CMS framework, called Aliro. Extensions that I develop are usually capable of running on any of Mambo, Joomla! or Aliro. The Aliro system is used to provide all the code examples given here, and you can find a site that is running the exact software described in this book at http://packt.aliro.org.

From time to time, you will find mentions of backwards compatibility, mostly in relation to the code examples taken from Aliro. In this context, backwards compatibility should be understood to be features that have been put into Aliro so that software originally designed to run with Mambo (or its various descendants) can be used with relatively little modification in Aliro. The vast majority of the Aliro code is completely new, and no feature of older systems has been retained if it seriously restricts desirable features or requires serious compromise of sound design.

No comments:

Post a Comment