Southend Linux User Group

CMS system

Content Management Systems

A simple web site may be considered as Content management System. It delivers the content you want to present to your intended audience. It may be confined to just members of an organisation, or be accessible to the general public. Initially the maintenance of the web may be be the responsibility of an individual, or a small team with the necessary technical skills. At a basic level probably just HTML,CSS, and Javascript. For the moment I’m going to just focus on the website.

The question then arising, do I need a full blown Content Management System. In this context, and for a small site, probably not, however suppose you want anyone in the organisation, or even your intended audience, to be able to contribute to the site. It’s unlikely these contributors will have the necessary technical skills mentioned above, and so they must be presented with a user interface, that is simple, demanding no more skills perhaps than those needed for word processor.

Faced with this situation, most web developers will turn to CMS. Now in addition to the skills already mentioned, the web developers must now add, database skills and PHP. Now a clear distinction between, developers, authors, and casual users is being made and the software effectively provides two interfaces.

CMS is divided into two areas – the backend and the frontend. The frontend is the website that is produced by the CMS. It is visible by everyone out there on the web, however some content may require a visitor to login first. The administrative area of the website is called the backend. To access this, developers / authors and administrators must all login with Username and password.

CMSCMS

The technical tools needed to build a CMS are often referred to as a technology stack. In Linux one such technology stack is called a LAMP server. I.e

  • Linux operating system
  • Apache server
  • Msql database
  • PHP server side programming language

There are many CMS systems, both commercial and Open Source, which can be used, ranging from the simple to the complex. Popular systems will work straight out of the box, but at some point they will require some customisation. The frontend will provide a choice of themes to choose from, aspects of which can be tweaked, to better suit your needs. This customisation can be taken a step further, by developing your own child theme. This allies you to override elements of the parent parent, so customisation my be more extensive.

Finally you may opt to build your own theme from scratch, or having sketch out what you want, or even mocked it up a a number of web pages, pass it to a developer.

The functionality of a CMS can also be extended, or customised with additional plugins. These may be developed by the core team who developed the core CMS, or can be provided by a third party. There are often a number of options to choose from, but you should always check to see how many other (active) users, have chosen to use a particular plugin.

How does it work

As with any web page, it consists of HTML code, CSS rules, to format the page, and images. The page is essentially static. For a web page to interact with a user, the functionality needed is provided by Javascript. The default programming language of the web. It may be code to check a form has been filled out correctly, or maybe provide an animation, perhaps as a slide show. This is referred to as front-end processing. The CSS and javascript, can be included in the web page, but more often is stored separately, as are the images. When a user requests a page, the server, or CMS delivers that page to the users browser. The browser checks for any additional links, to images, CSS or javascript, and requests these to.

There are occasions when a user requests a page, it makes sense to do some pre processing on the server, before the page is sent to the user. for example, you want to book a holiday. instead of a travel agent downloading a list of all their holidays, it’s probably better on the initial web page, to include a form, so the user can select the type of holiday they want. This is then sent to server. Now the server picks out the holidays requested and returns just those to the user. The programming language that is generally used for this purpose is called PHP; though equally Javascript could also be used to do this.

Back end, or server side processing.

To provide a consistent look and feel to the web pages, one or more templates are used. Collectively referred to as a theme. A template is nothing more than a web page, where common features have been extracted. The most obvious being the header and footers of the page. Instead of storing this code on every page, it can also be stored separately. Now when the page is requested, the PHP code as instructions to get the headers, footers, and (selected) content, put them all together, and then deliver the page to the users browser.

A Content Management System can be used to standardise this process and many different systems have evolved to fill this niche. Some are general purpose, leaving local developers to do any final customisation, or the CMS may be customised to meet a specific need. E.g. Schools, colleges and universities have similar requirements, so my opt for a CMS that better meets their particular needs. Most CMS providers offer much the same core functionality; then rely on separate modules (plug-in’s) to extend that, thus helping to minimise the amount of end user customisation needed.

When choosing a CMS, its important you look at the range of features offered, not just to meet immediate needs, but possible future needs as well. Plug-ins may be provided by both the core CMS provider, but by third parties as well. In the latter case, many may plugins may provide the same, or similar functionality.They may even rely on other plug-ins being installed as well.

The level of support for the various plug-ins by the community, the number of outstanding bug reports, are all things that need to be checked; especially if this is being done in a business context.

Frameworks

Into this mix, you might throw in frameworks. These provide additional pre built and stand alone capabilities, that can be either downloaded separated and incorporated into a web site, or they may be included as part of a particular CMS theme. While they may add additional tools to the developers armoury, they also add complexity.

With any software, a key consideration is maintenance, and the resources and skills needed to support it. Putting together a CMS solution from multiple sources, and having some overall form of version control,is a potential nightmare for the unwary. If the necessarily skills don’t exist in-house, then an organisation is usually left with little choice other than outsource a solution; it then hopefully becomes somebody else’s problem.

Legacy data

If moving from a small (custom) system, to a CMS, or even moving from one CMS to other, legacy data can be a big problem, depending on how long its been accumulated. Just keeping stuff up to date, requires resources, and should not be underestimated. You only have to look at the internet where there are probably more sites that are out of date, than those being actively maintained.

Fashions, and technology change, not may years ago, the web was the province of desktop and laptop computers. Then along can tablets and mobile phones. Depending on your target audience, a web site now needs to take all these various devices into account; unless perhaps your designing for an Intranet.

Static designs may longer work, and the techniques used to put a web page together may no longer be appropriate.The current flavour of the month is responsive, (or flexible) design. As with any large system, it has built in inertia, meaning the larger it is, generally the slower it is to adapt. CMS systems or no exception to this rule.

Do I need one?

As well as giving a brief overview of what a CMS system is, some of the attendant issues have also been covered, and which need to be considered very carefully, if contemplating this question. For a small web site, say less than 50 pages, the answer is probably no. If the site is projected to be significantly larger than this, then the answer maybe yes.

If the authors, or content providers, do not have basic HTML and CSS skills, then in much the same way as a CMS system can be divided into front-end and back-end, so to can developers. An author / front-end developer having these basic skills and can take raw materials and turn them into presentable web pages. In this scenario then the answer to the question is probably yes, there is however no one size fits all solution. Whichever path you choose, plan for some training.

Author: Alan Campion - Page reference: 5301
Last modified: Alan Campion - 2015-09-01