About this book

Mambo is a mature and fully featured Content Management System (CMS). First released in 2001, the system is now on release 4.5.x and is supported by an active and well organized open source development team and community. Mambo is both easy to use at the entry level for creating basic websites, whilst having the power and flexibility to support complex web applications.

Mambo implements the core requirements of a full featured CMS. It has a powerful and extensible templating system with the ability to upload and manage many different data types. User access control, content approval, rich administrative control, content display scheduling are all built-in. New features and extensions are constantly added to the core system, with many more being available and supported by the community.

The book begins by introducing Mambo and concepts behind content management. Then the installation of Mambo, and its supporting software [Apache/MySQL/PHP] is covered clearly and simply.  Once you have the installation up and running, we then take a tour of Mambo as it appears out of the box, to familiarize ourselves with how it works and what is what. As you take the tour, your own ideas for what you need in your new website begin to crystallise around what you can see Mambo is capable of.

We then build our web application, using the features of Mambo that are essential to our purpose. We try not to spend time on things that don�??t matter at this point. Once we have a base version of our site up, we then learn how to change its appearance and feature set to suit our particular requirements, including bringing it into line with an established corporate identity. At the end of the book we show how, if you have the skills and the need, you can add your own extensions to Mambo.

Publication date:
August 2005


Chapter 1. Terms and Concepts

Before you can understand how to operate Mambo, you need to understand the basic principles that underlie the system.


1.1 Content Management System

Content Management System (CMS) contains the terms content and management (administration) that imprecisely refer to a system that administers content. Such a system could be a board and a piece of chalk (menu or school chalkboard), or it could be something like Wikipedia (the free online encyclopedia at http://www.wikipedia.org), or an online auction house such as eBay (http://www.ebay.com/). In these cases contents and participants are administered. These participants play a major role with CMS, on one hand as administrators and on the other hand as users.

But it gets even better. Apart from CMSs there are Enterprise Resource Planning Systems (ERP, administration of corporate data), Customer Relationship Management Systems (CRM, care of customer contacts), Document Management Systems (DMS, administration of documents), Human Resource Management Systems (HRM, administration of staffing), and many others.

An operating system such as Windows or Linux also administers content. It is difficult to define the term CMS because of its encompassing nature and variety of functions.

Lately ECMS has established itself as the nickname for Enterprise Content Management Systems. The other abbreviations listed above are the subsets of ECMS. Mambo belongs to the category of Web Content Management Systems (WCMS), since it exclusively administers content on a web server.

Since these terms are still relatively new in the enterprise world, these systems will surely be developed even further. In principle, however, there will always be an integration system that tries to interconnect all these systems. In general, the term ‘content management’ is used in connection with web pages that can be maintained by a browser. This doesn’t necessarily make the definition any easier.


1.2 A Quick Glance into History

While the Sun maintained in the nineties that "the Network is the computer", Microsoft was not going to rest until a Windows computer sat on every desk.

The computer that Microsoft was concerned with was a mixture of data files and binary executable files. Files with executable binary contents are called programs, and were bought and installed by customers to manipulate data. Microsoft Office was the winner in most of the offices around the world. The computer that Sun was working with was a cheap, dumb terminal with a screen, a keyboard, a mouse, and access to the Internet. The programs and data were not stored on this computer, but somewhere on the net.

The mine philosophy governed Microsoft’s practices whereas the our philosophy was adopted by Sun. The motivation for these philosophies was not for pure humanitarian reasons, but for economic interest. Primarily, Microsoft sold software for PCs to the consumer market, Sun, on the other hand, sold server hardware and programs to the enterprise market.

The Internet, invented in the sixties, spread like an explosion in the mid-nineties. Among other things, Hyper Text Markup Language (HTML), the language used to write web pages, and the development of web servers and web clients (browsers) helped its expansion. The Internet itself was a set of rules that could be understood by different devices and was developed so skillfully that it covered the entire planet in almost no time.

An individual without an e-mail address could no longer be reached and a company without a website was not only old-fashioned, but didn’t exist in the eyes of many customers. The whole world swarmed to the Internet within a short time to become a part of it. Movies like The Matrix (http://whatisthematrix.warnerbros.com/) became huge hits and 1984 (http://en.wikipedia.org/wiki/1984), a book by George Orwell, was forgotten.

New net citizens on one hand came from the mine world and on the other hand from the our world. Those who were used to buying programs bought HTML editors and created Internet pages with them. The others preferred to write their own HTML code with any text editor they had on hand. And the web agency, where one could order a homepage, was born.

Both groups faced the problem that HTML pages were static. To change the contents of the page, it had to be modified on a PC and then copied to the server. This was not only awkward and expensive, but also made web presences like eBay or Amazon (http://amazon.com/) impossible. Both groups found more or less good solutions for this problem.

The mine faction, developed fast binary programs, with which one could produce HTML pages, and load them via automated procedures onto the server. Interactive elements, such as visitor counters, among others, were built into such pages.

The our faction discovered Java applets and with them the capability of writing a program that resided centrally on a server, which was operated via a browser. Entire business ideas were based on this solution—like online booking and flight reservation concepts. Both groups tried to develop market share in different ways.

The result was quite a stable market for both, in which passionate battles over the correct operating system (Windows, Linux, or Mac OS X) constantly drove the version numbers higher and higher. Customers got used to the fact that the whole thing wasn’t that easy.

There is always a third option in these situations. As in our case, it was the emergence of open-source scripting languages like PHP (http://www.php.net/). Rasmus Lerdorf had the goal of offering interactive elements on his homepage and with that a new programming language was born. From the outset, PHP was optimized in a perfect cooperation with the MySQL database, which also worked on the GNU/GPL platform (http://www.gnu.org/licenses/gpl.html).

Fortunately, on the server there was a Linux operating system and an Apache web server that offered the necessary infrastructure. Display medium at the client side was the browser, which was certainly available. Soon LAMP (Linux, Apache, MySQL, and PHP) became synonymous with database-supported, interactive presence on the Internet.

The most diverse systems like forums, communities, online shops, voting pages, and similar things that made it possible to organize contents with the help of a browser were developed in an enthusiastic creative rush.

After ‘difficult’ things such as Linux and Apache, ‘soft’ products were developed. The nineties were nearing their end; the Internet share bubble burst and suddenly the trend was to build unmitigated classical business models with unmitigated classical methods.

Whenever the economy isn’t doing well, costs are scrutinized and the possibility of lowering costs is contemplated. There are now, as there were earlier, numerous possibilities. PHP applications always had distribution numbers in the millions. Only the phpBB (http://www.phpbb.com/) and phpMyAdmin (http://www.phpmyadmin.net) projects are mentioned here as examples. One was developed into the quasi-standard for forum software, the other one into the standard for manipulating MySQL databases via web interfaces. The source code of the PHP language and that of applications were improved because they had an enormous number of users and developers.

The more open a project was, the more successful it became. Individual gurus were able to save enterprises immense costs in the shortest time. Static HTML pages were considered old and expensive and were overhauled. They had to be dynamic! Developers have been working in this environment for a few years now. Linux, Apache, MySQL, and PHP are readily accepted in industry. The search for professionally usable PHP applications has begun.

With this search one looks for:

  • A simple installation process

  • Easy serviceability of the source code

  • Security of the source code

  • User-friendliness

  • Easy expandability

The special advantage of PHP applications is the independence from hardware and operating system. LAMP also exists as WAMP (Windows, Apache, MySQL, and PHP) for Windows, MAMP (Mac, Apache, MySQL, and PHP) for Apple, and for numerous other platforms. And now finally our Mambo comes into the fray.

1.2.1 Mambo

The Australian company Miro (http://www.miro.com.au/) developed a CMS with the name of Mambo in the year 2001. It made this system available as open-source software, to test it and to make sure of a wider distribution. In the year 2002, the company split its product Mambo into a commercial and an open-source version. The commercial variant was called Mambo CMS, the open-source version Mambo Open Source (MOS). In the meantime all parties involved have agreed that MOS can officially be called Mambo and together a successful future for the fastest developing CMS of the moment is secured (http://www.mamboserver.com/index.php?option=com_content&task=view&id=14&Itemid=0).

The advantages of the commercial version for companies are primarily in increased security and that they have the company Miro as a partner that also supports further development. The advantage the open-source version offers is that it is free and an enormous community of users and developers alike provide continuous enhancements. In addition, it is possible for enterprises to take Mambo as a base and to build their own solutions on top of it.


1.3 Structure of a CMS

1.3.1 Frontend and Backend

A CMS consists of a frontend and a backend. The frontend is the website—what the visitors and the logged-on users see.

The backend, on the other hand, contains the administration layer of the website for the administrator. Configuration, maintenance, cleaning, creation of statistics, and new content creation are all done in the backend. The backend is at a different Uniform Resource Locator (URL) than the website.

1.3.2 Access Rights

Whenever we talk of management, we talk of the clever administration of existing resources. In a CMS, usernames are assigned to people involved and these are provided with different access rights. This ranges from a simple registered user through an ‘author’ and ‘editor’ up to the ‘super-administrator’, who has full control over the domain. Based on the rights, the website then displays different content, or the user works in administrative areas apart from the website.

1.3.3 Content

We handle all kinds of content; in the simplest case, it is text. But content can also be a picture, a link, a piece of music, or a combination of everything. To keep an overview of the content, one embeds it in structures, for example, texts of different categories. The categories, of course, are also content that need to be administered.

1.3.4 Templates

A template is a kind of visual edit format that is placed on top of content. A template defines the colors, character fonts, character sizes, background pictures, spacing, and partitioning of the page—in other words, everything that has to do with the appearance of the page.

1.3.5 Extensions (Components)

Every system has to be expandable and be able to grow with the requirements. Functionalities that belong into one context are also covered by the term components. For example, typical components are an online shop, a user manager, a newsletter maintenance system, or a forum. Components contain the business logic of their page.

Modules within the components are used to integrate content in the desired form into templates. For example, a recent news module supplies the headings of the five most recent pieces of news to the template. Another module delivers the number of users that are online at the time, or the meteorological data for your current town or city.

1.3.6 Workflow

By workflow one understands a work routine. The bureaucratic set of three (mark, punch, and file) is an example of a workflow. A recipe for baking a cake is a workflow. Since several people usually work with CMS content, well-organized workflows are a genuine help. In this connection, one sometimes speaks of work supplies that a certain user has.

For example, the editor sees a list of posted pieces of news, which he or she has to examine for correctness. After examining, the editor marks the pieces of news as correct and they appear in the work supply of the publisher. The publisher then decides whether to publish the piece on the front page.

1.3.7 Configuration Settings

Settings that apply to the entire website are specified using the configuration settings. This includes the title text in the browser window, passwords for search engines, switches that permit or forbid logging on to the site, or that switch the entire page offline or online, and many other functions.


1.4 Mambo as Real Estate

Mambo is a kind of construction kit that lets you, once it is installed on the server, create and maintain your website. Mambo is like a house that you build on a property of your choice and that you can furnish gradually. Thus, to a certain extent, it is real estate.

Stop! I was talking about mobility all the time and now I’m asking you to build real estate? Have no fear, the real estate you build, is physically at one place (your server), but is accessible from every place. To make a piece of real estate habitable, you need necessary services such as heating, electricity, and water supply. That is the reason your Mambo is deposited at as safe a server as possible, where hopefully the electricity will never be cut. Think of the abbreviation 24/7.

Just like your house, you also have a certain room layout in Mambo. You have a room for presentations, for cooking and talking, for working, and a completely private one that you only show to good friends. Perhaps you also have a large room that integrates all areas.

It doesn’t matter which room layout you decide on. You have to furnish your house, lay a beautiful floor, paper the walls, hang a few pictures, and of course, clean it regularly. The numerous guests leave traces that are not always desirable. To find your house the visitors need an address. This address has to be familiar to as many people as possible. Since there is no residents’ registration office on the Internet, you have to be the one that takes care of the topic, "How can I be found?"

Perhaps you also have a garden that surrounds your house and has different entry gates. There is an official entrance portal, a back door, and perhaps another small, weathered garden gate for good friends.

And perhaps you don’t like such houses and would rather use trailers, tents, mobile homes, hotels, or maybe prefer community living and are glad to pay rent and don’t want to think about all the details.

If you apply the last few sentences to your website, then you are already noticing how important it is to know what you want, who you are, and how you want to look at your community. One cannot not communicate! One can, however, be quickly misunderstood.

So plan your website on the Internet properly. Put thought into the texts, into possible interactive elements like a calendar or a forum, and of course, an area that only registered users are allowed to see.

Think about what prompts that move and don’t patronize users. Take a look at how others do it. Talk with the people you want to address through your website and invest your heart and soul into those things that are absolutely crucial for the success of your entry.

1.4.1 Mambo Versions

As with all software, there are different development versions with Mambo. This book is concerned with version 4.5.2. As you can see from the relatively high version number, Mambo is quite developed and tested.

Versions 4.5.1, 4.5.2, 4.5.3, and 4.5.4 released in 2005 are compatible with one another. This compatibility is important with security updates and with the use of external components and modules. A guest book component that was written for version 4.5.1 also runs under version 4.5.2 and subsequent versions.

A previously planned version 4.6 is not going to be released. The current road map was published at the end of February 2005 (http://mamboserver.com/menu/Mambo_4.5_and_5.0_Roadmap/). The next version jump will be released in the beginning of the year 2006 with version Mambo 5. At this time, the version carousel is still turning quite rapidly with Mambo. Version 5.0, however, will bring with it a slowdown in development.

Regardless of which version you use, the fundamental concepts and application flow are the same in all versions.

1.4.2 Mambo Features

Mambo is a full-featured content management system that can be used for everything—from simple websites to complex corporate applications. Here is a listing of Mambo features in bullet form:

  • Free source code

  • Large and eager community of users and developers

  • Simple workflow system

  • Caching mechanism to secure fast page creation with favorite pages

  • Waste paper basket

  • Banner management

  • Data manager for uploading and administering data

  • Publication system for content

  • Content summaries in RSS format

  • Search-engine-friendly URLs

  • Multilingual frontend

  • Macro language for data content (Mambots)

  • Administration interface that is separated from the homepage

  • Simple, expandable template, and component system

  • Simple, but powerful template system (HTML, CSS, PHP) without a complicated template language

  • Hierarchical user groups

  • Simple visitor statistics

  • WYSIWYG editor for content

  • Simple polling

  • System of evaluation for contents

  • Many free extensions at http://www.mamboforge.net, for instance, forums

  • Picture galleries

  • Document Management Systems (DMS)

  • Templates

  • Calendar

  • And much more

1.4.3 Examples of Mambo Pages

Now we take a look at a few Mambo-based websites. To get an overview of the areas of application for Mambo, here is a selection independent of content:

Water and Stone, Thailand: A web and print media design company:

Figure 1.1: Water and Stone, Thailand

Flam Player, Canada: A Macromedia Flash-based MP3 player:

Figure 1.2: Flam Player, Canada

Airline Pilot Central, Canada: A company providing pay and benefit information for airline pilots, fleet breakdowns and pilot hiring status for US and Canadian airlines:

Figure 1.3: Airline Pilot Central, Canada

Elektronics, Poland: A wholesaler of lighting and electric installation accessories:

Figure 1.4: Elektronics, Poland

Further examples of Mambo pages can be found at:


and in the gallery at:


Have fun poking around, it’s worth it!

About the Author

  • Hagen Graf

    Hagen Graf was born in July 1964. Born and raised in Lower Saxony, Germany, his first contact with a computer was in the late seventies with a Radioshack TRS 80. As a salesperson, he organized his customers' data by programming suitable applications. This gave him a big advantage over other salesmen. With the intention of honing his skills, he joined evening courses in programming and became a programmer. Nowadays he works in his wife's consulting company as a trainer, consultant, and programmer (http://www.cocoate.com). Hagen Graf has published other books in German, about the Apache web server, about security problems in Windows XP, about Mambo, and about Drupal. Since 2001, he has been engaged in a nonprofit e-learning community called "machm-it.org e.V.", as well as in several national and international projects. All the projects are related to content management, community building, and harnessing the power of social software like wikis and weblogs. He chose Joomla! CMS because of its simplicity and easy-to-use administration.

    Browse publications by this author
Book Title
Access this book, plus 7,500 other titles for FREE
Access now