Joomla!, one of the world's hottest open-source content management systems, allows you to develop your own extensions. You might be interested in developing these Joomla! extensions, developed according the MVC model and perfectly integrated within you Joomla! site. Then, the book Learning Joomla! 1.5 Extension Development, written by Joseph L. LeBlanc, would be an excellent choice for you to read.

This book learns you to create Joomla! 1.5 extensions with PHP, using the available Joomla! libraries which are used as well by the core extensions. Before starting to read the book, it's necessary that you already have some general Joomla! knowledge. The basics of PHP are very useful to know as well.

Throughout the book the development of one package of extensions is built and explained. This is a reviewing system for restaurants, including commenting system, content and search plugins and a module. These can be downloaded – together with all other code examples discussed throughout the book – at the site of Packt Publishing after you bought the book.

Buying the book can be done at the Joomla! shop, where you can find all other sorts of books and Joomla! merchandising products as well.

The book starts with a general overview about Joomla! Extension Development. The example project is also explained. Throughout this book you will learn how to built several extensions to create, find, promote and cross-link restaurant reviews. When you learned how to built this package of extensions, you can start develop on your own, with any idea you have in mind. The example project used covers lots of things that can be applied in other situations as well.

The real work start in the second chapter. In this chapter, the basics of the Restaurants component is created. Especially the available toolbar buttons are explained thoroughly.

How to code the backend part of the component, with the use of the MVC model, can be read in chapter 3. This chapter learns you how you can easily create Table classes, which you can use to easily get, store, update or delete data in the database. Creating the review form for the backend is also explained, with the example code perfectly commented.

Chapter 4 deals with the frontend development. It learns you how to display the reviews on the frontend of your site, including Search Engine Friendly links. Also the commenting system is built and displayed.

Chapter 5 covers some very interesting topics of advanced Joomla! development. You know all about overriding the JTable methods, ordering records, checking in out records and getting user information after reading this chapter. You will also learn some part about JHTML, for example used to create forms.

Module development is the subject of chapter 6. All steps needed to create a module are included in this chapter: creating, configuring, setting parameters, using helper classes and of course, displaying it at the frontend of your site.

In chapter 7, several functions are added to the component. For example the function of publishing, deleting and applying the restaurant reviews is explained. The backend view is expanded with a search and displaying options which can also be found at the regular core components like the Article Manager.

How to use JavaScript Effects like modal boxes and tool tips can be read about in chapter 8. How to use Google Maps in your extension is in great detail explained here. A very useful part to integrate the maps easily, including markers and interactive methods!

Chapter 9 covers the creating of plugins. Two content plugins and one search plugin are developed. All events like onPrepareContent, that can be registered are explained.

The adding of parameters to modules, plugins and components is the subject of chapter 10. The available types of parameters are all explained in short, and are very useful to know.

Chapter 11 tells the reader about sending mails, managing languages and handling file uploads. The part about managing and adding translations is very good to know, and very important when you want to make your extensions available to the community. It's a most forgotten part, especially by developers that generally never speak any other language than English. As a translator I realized that it was so important to have all text messages included in the language files.

In the last chapter can be read how to package the extensions, and so create installable zipfiles of them. How to use extra installation scripts is also covered in this chapter.

This book provides the readers a very good start how to develop their own extension. There are lots of code examples used, which makes it all clear. These examples are always explained very well afterwards. Also the illustrations used are clear. While reading this book, I noticed that Joomla! can do a lot more for extension developers than most of them are using at the moment. The libraries included in Joomla! contain much features, which can easily be implemented in any extension without writing enormous parts of code.

I would really recommend this book to all who want to start with creating extensions for Joomla! 1.5, with the advanced use of the Joomla! framework.