My goal in this multi-part series of blog postings is to present you with the overall view of what Content Management Systems (CMS) are and in general how they work. While I will discuss a few of the more well known systems, this is my no means meant to be an in depth article on the specifics of any one CMS package. The knowledge you will gain from this article will help you understand the technology and concepts behind CMS packages and this should help you make an informed decision when selecting a system for your web site.
The original basis of this information was a series of articles I wrote and published on my first web site of http://www.irarichardsmith.com in late 2003. As technology changed and as new systems have come to my attention, I have been keeping this document updated to reflect those events. The information you are now reading is the most current edition of my efforts.
The original articles were a pretty big hit on my site. Rarely is anything ever in its best form upon its first release, so as I continue to modify this document I am mindful of the advice readers have provided on how to make it better. While it is not possible to always incorporate every change suggested, I do try to include as many changes as possible to make this the best most useful document for everyone.
I invite you to read the material presented in this multi-part series and by doing so take a journey with me to discover what this new and useful technology is all about.
What Are Content Management Systems?
The name Content Management System is certainly a mouthful to say. We do however have the good fortune of this technology being like any other in the computing industry, so there is a wonderful three letter abbreviation of CMS used to represent the longer more formal name. Additionally, the name Web Portal or simply Portal can be used in lieu of the term CMS. So the first piece of advice that I can give you is to not let the names or how they are abbreviated confuse you because they all refer to the same type of technology.
There are many CMS packages available for use. Plenty of them are Open Source and others are Commercial and thus require you to purchase them. The choices can be overwhelming to be sure. If you are wondering just how many there are, you can have a look at http://www.cmsinfo.org. This is the most comprehensive listing I have seen so far, listing both commercial and open source products but even this listing I fear is not a complete listing of every choice available.
As a side note, I am in no way affiliated or connected with the cmsinfo.org site. It is a site I came across in my research for the articles and documents I have written about CMS systems. The web site, like all other web sites, will sometimes have problems or outages. I would suggest you treat it as any other site and if you have trouble accessing it then try again later. I have had some readers email me regarding the site and so this is why I am clarifying this matter now so you will realize I have nothing to do with the site.
I certainly do not advocate you rushing to that site right now for the sole purpose of doing an in-depth study of each listing to determine what you need. I would much rather you just review the list by looking at the volume of options you have and then bookmark it to return to later when you have completed this reading here. By then you should have a good enough understanding of CMS technology to begin your research in earnest for the system which you want to use.
But what exactly is a CMS you might be wondering? Well, let’s take a look.
In the beginning, web sites were pretty much comprised of a series of HTML (short for Hyper Text Markup Language) pages linked together through a menu system or to each other allowing you the user to ‘surf’ the site by beginning at the starting point and then taking an option to a page of interest.
Behind the scene, the author of the site was hard at work laying out each page as it was created, sizing images, placing them on the page and then developing the text and inlaying that to make the web page as you see it on the screen. As pages were removed from the site or new pages added, the author was constantly going through each page to update the links or updating the menu system in order to keep its navigation functional for the viewer. Very tedious time consuming work to be sure, but it did get the job done and it did things very well.
Software packages such as Microsoft FrontPage and Macromedia Dreamweaver came onto the scene as the first big boost of help to the weary web designer. These designer environments provided a graphical interface so that web pages could be created without having to manually write all the HTML code. Accompanying the graphical interface, a host of drag-and-drop tools came prepackaged to provide further assistance to web site design. Page designing became easier and faster with this advent, but it was still build a site one page at a time.
For instance, say you wanted to set up an area specifically for registered members of your site or restrict access to certain parts of your site for only a select few people. You could conceal those web page locations and email the address to the ones you wanted to have access. You could also acquire or write some type of login system, however, that would be in a language other than HTML.
HTML is a good language but it is limited to dealing with web page display and content handling. It is not meant as an all around programming language to do things like log people in and such. Initially, various scripts written in one of the many scripting languages were used to fill the gap between a function or feature of a web site and the HTML driven content. The scripts were typically small in size, focused on a single specific task, and could be included with the web page where the function was desired. If you wanted to accomplish a single specific task, scripts would fit in nicely. You could include them within your web pages and it would appear seamlessly to the end user. But when the need went beyond a single focused specific task and turned into something larger that was when things began to break down. Scripts became so large they no longer neatly fit within the bounds of a single web page. It became harder to incorporate them seamlessly into the page, and their functional limits were being reached and coming up short.
That is where the CMS package comes in. This is a technology that makes setting up and maintaining a web site easy, allowing the web designer to focus more on the content of the site and other features than worry about all the programming that goes on behind the scenes.
When I used the term programming above, I really meant it literally. A CMS system has fully functional and configurable features like a user registration system, a permission system, an article publishing system, and the list goes on. Many of these features are actually applications in their own right, combining within the CMS system to provide the user a seamless viewing experience. The web site administrators’ job switches from creating individual web pages and working scripts into them to configuring how the features of the CMS package will work and inputting the content into the CMS for the site. This does not imply that HTML is gone or that a site based on HTML is a bad site. As you will find with all of my writings and thinking, this is just a choice, an option that you have. It is up to you to determine if your needs and desires are such that this is a better option for you. There are many sites that are great and attract many visitors and they are just pure HTML based sites. Even in the CMS world, you still use HTML to a degree or the tools within the CMS package to write the HTML for you as you select specific features within a visual editor.
One of the most powerful features the CMS package brings to the web site administrator is the ability to control the visual appearance of the site with what is called themes or skins. The words theme and skin can be used interchangeably because they really mean the same thing in this context. Themes act as a template which controls how the site will look visually as well as how things will be placed on the site. The individual modules used within the site by default will adopt the site wide look. Usually there will be an option to permit the individual module to take on the appearance provided by another theme or skin, so if you have a need for a module or a specific area of your site to look different than the rest of the site, you can still accomplish this task.
CMS packages come pre-packaged with several ‘themes’ or skins to provide you with a few choices to get you going. Normally there will also be provided instructions on how you can create your own themes if you wish to experiment and explore this facet of CMS packages. Usually there will also be themes available from third party theme designers. Some will be of the Open Source variety freely useable to you while others will be offered commercially for a fee. When searching for third party developed themes or skins, just keep in mind you need to search for ones that are specifically designed for your particular CMS package. Themes written for one CMS system are not likely to work for a different CMS system. This is because each CMS package goes about handing its look and feel differently, which is part of what makes it unique from the other available packages. Sometimes the themes will be interchangeable if the CMS package is a derivative of the package the theme was written for. You should investigate this fully before attempting to apply a theme not targeted for your selected CMS package.
While all CMS systems allow you to set the look and feel of the site, some go a step beyond this and allow the user of the site to choose how they wish the site to look when they are logged into it. For this to happen, you would make available a selection of themes for the user to choose from. If the user elects to have a different look and feel, their preference is stored in the database. Each time they log in, the site transforms itself from the default look to the one selected by the user. But keep in mind not all CMS systems permit the user to select their preferred look and feel. If this is an important aspect for you to offer your users, be sure to verify which CMS packages you are looking at provide this feature.
Prior to the advent of CMS packages, you would be including your site theme or style inside the individual HTML pages that composed your site. This meant that the design coding was in each and every page of your site, so when you wanted to change the look of your site you would edit each and every page of your site. This was very time consuming because after you did all the editing work on your site, you would then have to upload all the pages of your site to your web hosting space before the design changes would be viewable by your site users. With themes, you do have to upload the pages that comprise the theme, but that is small in comparison to having to upload your entire site.
So you save time by creating the design once and uploading one set of files. You then activate the theme and instantly your entire site is displayed with the new look.
CMS packages will usually have a security system through which you configure various levels of security and assign those levels to the users of your site. Depending on how you lay things out, you control who has access to what parts of the site and what functions they can do in those areas. The best part of all is this is done through a graphical interface so you never write any code or do anything at that level to have this ability.
CMS packages have allowed web sites to do what I call ‘grow up’. By that I mean you now have far more ability than to simply write straight up HTML based web pages and render those to the user. In reality, CMS or Portals are a full blown application in their own right delivering to you features that used to exist only in non-web based programs. With your Portal based site you can use it as a launch point to take your users to other sites through Web Links. With one of the many fine forum packages out there you can provide a community discussion area for your users to be a part of. You can even use one of the many Open Source mail packages to provide your users with email accounts on your site. The list of options to you for functionality to put into your site is almost limitless. What the core Portal system does not have or provide, you can usually find in third party developed modules. There are many Open Source third party modules available for many of the Portal Systems as well as commercial ones.
Third party modules will adhere most of the time to any published coding standards of the core Portal system. Of all the systems I deal with, each one of them publishes their coding standards and API (Application Programming Interface) standards so that third party developers can create modules that will fit within the Portal system easily and conform to the overall core system. By doing this, the tight integration will provide a seamless look to your site users no matter how many third party module sources you are using in your site.
While I am not able to speak globally for all third party modules of all Portal systems, I can say that many times the third party modules will utilize standard features of the core system such as security or user information such as names, ids, and logins. Typically the third party module will have some of its own settings and controls and how to use those can be found in an install or readme type file that comes with the third party module files.
What you need to keep in mind when reviewing the various Portal systems is what things you want to offer your users. That in part will determine which Portal systems you can further look at to make your final decision from. Each CMS has its own features and its related third party modules also have their own features and behaviors. They will not always offer the same things. So you must look at them in relation to what you want and how you want your site to work.
So what is it that makes a CMS package accomplish the seemingly impossible? The secret behind it all is actually two very important components. So vital are each that the CMS could not function or exist without either of them. The first of the two components to a CMS package is the database backend which we will look at in the next part of this multi-part blog series.