Mastering Joomla! 1.5 Extension and Framework Development
This book will guide you through the complexities of implementing components, modules, and plugins in Joomla! 1.5. It provides useful reference material that explains many of the advanced design features and classes available in Joomla! 1.5.
Joomla! is one of the world's top open source content management systems. The main sources of the PHP MySQL application's success are its comprehensive extension libraries, which extend Joomla! far beyond content management, and it's very active forums where one can easily tap into the knowledge of other Joomla! users, administrators, and developers.
One of the most pleasurable things about working with Joomla! is the encouragement of openness and friendliness among the members of the Joomla! community. It is, without a doubt, the community that is driving the Joomla! project. The name 'Joomla!' is derived from the Swahili word 'Jumla', meaning 'all together'. The Joomla! community lends a true sense of jumla to the project.
The architecture of the latest version of Joomla! differs in many ways from previous versions. Resultantly backward-compatibility with some extensions has been broken; the race is on for developers to update their skills in order to rectify the problems and start building new extensions. Perhaps the most important of the changes is the reorganization and classification of files and classes. This change encourages but does not force developers to use the Joomla! libraries consistently between extensions.
History
Rice Studios, formerly Miro, created a closed-source CMS called 'Mambo' in the year 2000. One year later, Mambo was re-licensed under two separate licenses, one of which was open source. The open-source version became known as 'Mambo Site Server'.
In 2002 Mambo Site Server was re-branded 'Mambo Open Source' (Also referred to as MamboOS or MOS) in an attempt to differentiate the commercial and open source flavors of Mambo. All rights to Mambo Open Source were officially released into the open source community in 2003.
Mambo Open Source was extremely successful and won a large number of prestigious open-source awards.
In 2005 the commercial version of Mambo was re-branded as 'Jango'. Rice Studios, at that time still Miro, also chose to form the Mambo Foundation, a non-profit organization. The intention was to create a body that would help protect the principles of Mambo and provide a more structured working methodology.
The creation of the Mambo Foundation created a rift in the Mambo Open Source community. The creation of the Mambo Foundation was seen by many as an attempt by Rice Studios to gain control of the Mambo Open Source project.
Not long after the Mambo Foundation was created, a group, consisting mainly of the Mambo Open Source core developers, publicly announced that they intended to abandon Mambo Open Source. The group formed a non-profit organization called 'Open Source Matters'.
Open Source Matters created the Joomla! project, a guaranteed 100% open-source GPL project. The first release of Joomla! (Joomla! 1.0) was very similar to the then current release of Mambo, the majority of extensions at the time being compatible with both.
Restraints within Joomla! 1.0 led to a complete re-think of how Joomla! should be constructed. After a long development period, and two beta releases, Joomla! 1.5 was released in mid 2007.
Joomla! 1.5 is extensively different to Joomla! 1.0 and Mambo. Joomla! 1.5 introduces many new classes and implements a comprehensive framework. These changes have lead to reduced compatibility between Joomla! and Mambo.
The most notable change, for most third-party extension developers, is the introduction of the MVC (Model View Controller) design pattern in components. These changes now mean that all third-party developers tend to develop for Joomla! or Mambo, but not both. The MVC design pattern is discussed in depth in Chapter 5, Component Design.
What you need for this book
To use this book effectively you need access to a Joomla! 1.5 installation. In order to run Joomla! 1.5 you need the following software: PHP 4.3 or higher (4.4.3 or greater is recommended), MySQL 3.23 or higher and Apache 1.3 or higher or an equivalent webserver.