Being one of the most popular and most effective open source Content Management Systems that are available on the internet today, Joomla! has now reached a point where it is supported by a vibrant community of users and extension developers and a bibliographical basis that is growing every day with books that guide readers from the most rudimentary of tasks to its most advanced functionality. Having already published a number of Joomla!-related books authored by prominent members of the community, Packt Publishing has made a major contribution in this direction. Joseph L. LeBlanc's Learning Joomla! 1.5: Extension Development is the latest gem in Packt Publishing's array of Joomla! books, moving along the same line of tutorial-styled writing and bringing the experience of an extension developer onto our desktops.
The blurb on the back cover of the book promises to "get you started coding your first extensions as quickly as possible, and have you adding features that will make your work look professional!" and it goes on to do just that as soon as the first chapter with its definitions and introductory material sets the necessary background. In the next three chapters, the author diligently presents the basic structure of a Joomla! component with its backend and frontend branches, closely following the Model-View-Controller (MVC) design pattern while at the same time paying attention to leave room for future upgrades. As a result, chapter 4 closes with a fully working and flexible component, offering a motivational boost to any budding programmers that are taking their first steps in extension development for Joomla! websites. In chapter 5, the author outlines the usage of three major classes of the Joomla! API (JTable, JHTML and JUser), showing how easy it is to control database tables, create HTML elements, retrieve user details and seamlessly incorporate this ready-made functionality into your code. The next chapter is devoted to module development, which programmers often regard as a trivial task that can be completed quickly and without relying heavily on the Joomla! Framework. However, in this case it is made obvious that, if you adhere to the proposed MVC design pattern and utilize the Joomla! API, you can create modules that will not only be more easily maintained but also have their features extended with a few lines of code.
Joseph L. LeBlanc's Learning Joomla! 1.5: Extension Development is a book that should be read with hands on a local Joomla! installation. The amount of information it contains is overwhelming for anyone who is taking their first steps in the world of extension development for Joomla! and, unless the reader demonstrates to him/herself the code included in the book, s/he may find him/herself at a loss along the way since most of the code presented in later chapters (modules and plug-ins) depends on the component that was created earlier (chapters 2-4). To help in this direction, the author has in all cases included meticulous instructions about the files that should be created or changed and the lines where code should be added or modified. However, this creates the obligation for the reader to go through the book from cover to cover in a linear fashion in order to make the most out of it and make sure that none of the instructions have been missed. This might make some readers impatient (especially, if they are familiar with the basics of developing extensions for Joomla!) or they might find themselves wondering why the author seems to be moving back and forth from file to file amending and improving on code already written instead of presenting and explaining the final version right from the beginning. It seems that, instead of trying to sound instructive, Joseph L. LeBlanc is mimicking an ordinary development process, including new features and revising and adapting old code as he goes on. Had he opted to structure his book differently, the reader would probably have missed what is now made obvious when the last page is read: It is extremely easy to create an extension for Joomla! 1.5 but it is even easier to modify and expand on it if you adhere to the MVC design pattern and rely on the Joomla! API in the first place.
All in all, the book lives up to the promise made in its blurb and offers a solid base from which anyone who knows the basics of PHP and is familiar with object-oriented programming can delve into the world of extension development for Joomla! and the advantages it offers.