Joomla! was not created from the ground up. It was derived from another program called Mambo, using the open source software forking method, which enables you to use the source code and build on it with your own code.
So, Joomla! started as Mambo, which was created by an Australian group as far back as 2002. The participants had a separation of thoughts on project direction. The result of this separation of minds was that Joomla!, which was a near mirror image of Mambo, found its first release as Joomla! 1.0 not long afterward.
The transition from Mambo to Joomla! was rather seamless. The Mambo license permitted others to take the code and start their own projects. Joomla! is a "fork" of Mambo and now runs as a completely separate project. The latest version of Joomla! isn't a fork anymore, but a product standing in its own right.
As a result of this forking by Joomla! from Mambo in 2005, the headquarters of Joomla! shifted from Australia to Europe, resulting in a major ground swell of interest in Joomla! across Europe as a powerful website platform that was available at no cost. Successive versions of Joomla! caught on in the United States, where it is now the go-to CMS platform of choice for thousands upon thousands of personal, public, and commercial websites.
Joomla! 1.0 progressed through code improvements to version 1.0.15 and at that point, the Joomla! team discontinued support of that version and shifted emphasis to a completely reworked package for Joomla! They introduced version 1.5 in early 2008. The changes and enhancements were plentiful and resulted in a greatly improved CMS product.
Shortly after the Joomla! 1.5 release, it became obvious to the Joomla! core team that Joomla! needed some more major improvements in order to bring 1.5.x to a higher level. After examining the options, the team determined that a complete rework was necessary and proceeded to develop version 1.6, which was renamed 1.7, and then version 2.5.x, the last released version prior to Joomla! 3.
The team determined that they needed to streamline the software's websites and, rather than patching up past code, they decided a new version was the better approach.
It took a while to get fully organized, but the group, Open Source Matters, Inc. (OSM), "runs" the Joomla! project and manages all aspects of its programming, availability, and a bunch of other things. At first, the programmers who forked Joomla! from Mambo ran it, but since then, the leadership team has been more formally organized and structured, including all the various interest areas. OSM is internationally diverse, with leadership and involvement coming from all over the world.
Joomla! is based on the PHP scripting language and the MySQL database system. Both of these are free and open source and almost every website server provides them for software developers and website builders who host websites.
It is an acronym for Content Management System, which means that the website content can be managed, created, or edited, without having to know how to do website coding or how to design a website.
Typically, there are programmers, designers, and then content managers or editors who are involved in the overall management of a website. As an individual wanting to build your own website, and if you use a CMS, the programming and design tasks are not something that you need to learn.
Joomla! in its basic form, has certain core functionalities built into it. What makes Joomla! such a great "CMS" is the manner in which its functionality can be enlarged. This is accomplished through Joomla! compatible extensions, which fall into six basic categories:
One of the major features of the Joomla! CMS is its function as a solid platform upon which any number of website formats can be constructed. This is accomplished through the implementation of extensions and templates. Extensions add the functionality and content configuration for the website. Templates are used to change the look. By using extensions, you can change the entire website’s purpose.
These are mini-applications that operate inside the Joomla! 3 framework. For example, a photo gallery that displays images in an orderly way from photos that are located in a folder. Another component that is often used is a contact form for website visitors to send messages.
These are visible areas on the page that contain extensions that can be associated with a component. For example, login form for users, or a module that displays the latest articles. Modules can be positioned anywhere on a page that has designated module positions. Modules can be relocated and also be set to appear on certain pages. They can also be stacked, which is the process of adding several modules to the same module position and setting the order in which they appear.
Plugins are routines that are associated with triggered events. When a triggered event occurs, it executes a function. For example, a plugin that allows the display of a module within an article by specifying the module using special code inserted into the article. When the article is opened, the plugin is triggered to display the designated module.
Libraries are packages of code that provide a related group of functions to the core Joomla! framework, or to the extensions, and are installed, updated, and deleted like any other extension.
These control the physical structure and visual layout of the website pages. A template displays the website in a certain layout, with module positions, cascading style sheets for colorization, and control over content and appearance.
If you want to add languages to a Joomla! website, there are many language extensions to choose from. These can be configured to allow website visitors to select the language of their choice to view the website. Many language extensions can be available for viewer selection through a Language Switching extension.
The content on Joomla! websites is generated from five main sources:
1. Articles in Categories: Articles are the main content of most Joomla! websites. Articles are assigned categories.
2. Module Content in Articles: It is possible to include or embed the content generated by modules into articles. This comes in handy for displaying content that is associated only with a specific article, or it provides a method for accessing more content.
3. Content in Modules: Much of the content in Joomla! websites is generated and displayed by using modules, which are assigned to a fixed physical location on a web page template.
4. Content from Components and Extensions: Components are the mini-applications that operate on the website. Extensions installed as components can enlarge the scope of content on a Joomla! website.
5. Content from Plugin Triggers: Plugins generate content when something happens on the website that triggers them into action.