This section of the guide is for developers. This includes developers as part of an open source CMS community, those working as part of an in-house development team for a large commercial CMS and freelance developers.

The information shown here is for new and experienced developers alike. It caters to the needs of the seasoned professional as well as the newcomer to the world of server side programming.

Content management systems (CMS) contain a range of features which are standard across many systems and include:

  • API: this enables interaction with other software
  • Database, e.g. MySQL or Oracle
  • Templates
  • WYSIWYG editor
  • User management
  • Workflow management
  • Easy to use interface
  • Scalability
  • Extendability

Every CMS will have features which are peculiar to that individual system but they all have a set of core features which are found in any CMS.

Developers are interested in backend functionality; the ability to extend this functionality via a series of modules (add-ons and plug-ins) and a robust API.

CMS extensions

All of this takes place within a development framework which enables this to be done in a modular fashion. This modularity uses a system of callbacks and hooks via the API to extend the functionality of the CMS without changing its core features.

Examples of these include:

  • Social media, e.g. Facebook
  • E-commerce, e.g. shopping cart
  • Site security
  • Search, e.g. tag clouds
  • Multimedia, e.g. image galleries
  • Languages, e.g. translations

These are some of the many extensions on offer to the developer.

The role of the CMS community

Open source CMSs such as Joomla, Drupal, WordPress or Mambo have a ‘community’ in which developers, industry experts and others contribute their knowledge and expertise for the good of the CMS. This is an ideal way of learning as well as finding the solution to a problem, especially for the new developer.

A weakness of open source CMSs is access to help, support and documentation. This is not a problem for commercial systems that have their own in-house development/technical team to deal with these issues.

But open source systems have to rely upon their community: this has resulted in a concerted effort by many of these systems to provide good quality and sufficient documentation. CMSs such as Mambo are asking for help with their developer documentation which includes information on how to work with existing extensions as well as writing new ones.

Visit www.mambo-developer.org for further information.