Learning Joomla! 1.5 Extension Development: Creating Modules, Components, and Plugins with PHP
|Also available on:|
- Program your own extensions to Joomla!
- Create new, self-contained components with both back-end and front-end functionality
- Create configurable site modules to show information on every page
- Distribute your extensions to other Joomla! users
Book DetailsLanguage : English
Paperback : 176 pages [ 235mm x 191mm ]
Release Date : June 2007
ISBN : 1847191304
ISBN 13 : 9781847191304
Author(s) : Joseph L. LeBlanc
Topics and Technologies : All Books, CMS and eCommerce, Content Management (CMS), Open Source
Table of Contents
Chapter 1: Joomla! Extension Development: An Overview
Chapter 2: Getting Started with Component Development
Chapter 3: Back-End Development
Chapter 4: Front-End Development
Chapter 5: Module Development
Chapter 6: Expanding the Project
Chapter 7: Behind the Scenes: Plug-Ins
Chapter 8: Configuration Settings
Chapter 9: Packing Everything Together
Download the code and support files for this book.
Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.
Errata- 21 submitted: last submission 13 Jun 2012
Errata type: Typo | Page number: 16 | Errata date: 01 Apr 09
First paragraph, fourth line... "Also as the description in the browser..." should read "Also the description in the browser..." The word "as" should be removed.
Errata type: Technical issue | Page number: 21 | Errata date: 23 Jan 08
All the toolbar codes for buttons are referring to mosMenuBar which are replaced by JToolBarHelper in v1.5. So they should read: JToolBarHelper::save(); JToolBarHelper::savenew(); etc.
Errata type: typo | Page number: 33 | Errata date: 03 Oct 07
The header of the tip says: What does JTML::_() do? It should be JHTML::_(), the H is missing
Errata type: typo | Page number: 35 | Errata date:20 Dec 07
In the fourth paragraph "recaputring" should be "recapturing"
Errata type:Typo | Page number: 39 | Errata date: 08 Oct 07
The fourth paragraph starts with: "Below the table, there are FOUR hidden variables". It should read three hidden variables and not four hiddden variables.
Errata type: Technical issue | Page number: 41 | Errata date: 23 Jan 08
file: admin.reviews.html.php, page 41,96,and 101 "Its written: JOutputFilter should be written: JFilterOutput. The core team has changed the class name JOutputFilter to JFilterOutput in the release candidate."
Errata type: typo | Page number: 41 | Errata date: 03 Apr 09
The line above the code, "add the first two bits of highlighted code as seen below:" should read "add the first three bits of highlighted code as seen below:"
Errata type: Technical issue | Page number: 47 | Errata date: 08 Oct 07
The following line should follow
Errata type: TYPO | Page number: 53 | Errata date: 06 Feb 09
2nd para, "the calls to unset() will only effect our local copy..." 'effect' should be 'affect'.
Errata type:Technical | Page number: 54 | Errata date: 09 Feb 09
Last paragraph, 2nd line ...it will call BuildParseRoute() and pass in an array... should be ReviewsParseRoute()
Errata type:Technical issue | Page number: 60 | Errata date: 06 Aug 08
$mainframe->redirect('index.php?option=' . $option . '&id=' . $row->review_id . '&task=view', 'Comment Added.'); Should be: $mainframe->redirect(JRoute::_('index.php?option=' . $option . '&id=' . $row->review_id . '&task=view'), 'Comment Added.');
Errata type:Technical issue | Page number: 61 | Errata date: 08 Oct 07
This line needs to be at the beginning of the highlighted text: $db =& JFactory::getDBO();
Errata type: typo | Page number: 69 | Errata date: 04 Apr 08
Last paragraph ...select the id and name "form" jos_reviews should read ...select the id and name "from" jos_reviews. form should be replaced with from
Errata type: Technical issue| Page number: 75 | Errata date: 08 Oct 07
$query should include "WHERE published = '1'" Otherwise unpublished reviews show up in the random selections
Errata type: Code | Page number: 84 | Errata date: page 84 Code 21 Aug 09
Smoking: review->smoking ?> should be Smoking: review->smoking; ?> A ';' should be included after 'smoking'
Errata type: typo | Page number: 98 | Errata date: 21 Aug 09
Errata type: Others | Page number: 13 | Errata date: 18 Dec 08
The link to download the Ext SDK is broken. Given link: http://www.extjs.com/download Correct Link: http://www.extjs.com/products/extjs/download.php
Errata type:Layout issue| Page number: 115 | Errata date: 20 Jul 07
TThe code for "function pluginReviews" has been placed at the wrong page. Now it's part of the "What Events Can be Registered" text, but it should be on page 113.
Errata type: typo | Page number: 149 | Errata date:03 Apr 09
The line, "Open /plugins/conent/reviews.xml and make the following changes:" above the code should read "Open /plugins/content/reviews.xml and make the following changes:"
Errata type: typo | Page number: 151 | Errata date: 30 Oct 08
The sentence "The changes to the XML file for the search plug-in are similar to the first two, except that here you set the group parameter in
Errata type: Technical | Page number: 154 | Errata date:30 Oct 08
First paragraph on page states "we're using the #_ table prefix notation" when it should be "we're using the #__ table prefix notation". NOTE: there should be two underscores.
Errata type: Code | Page number: 41 | Errata date:17 May 2012
jimport('joomla.filter.output'); should change to jimport('joomla.filter.filteroutput'); because the file organization goes on that path. It will be an answer for that fatal error.
What you will learn from this book
- Code Joomla! components, modules, and plugins from the ground up
- Create toolbars, list screens, and menu items
- Maintain a consistent look and reduce repetitive code using HTML functions
- Automate database record management
- Validate input and resist hack attempts
- Configure your modules through XML parameters
- Package and distribute your extensions
Chapter 1 introduces Joomla! extensions, and gives an overview of how Joomla! can be extended through components, modules, and plugins.
In Chapter 2, you will learn about the architecture, design, and requirements of a general component. You will also see how the component gets executed and is registered with the database. At the end, you will learn to create toolbars.
Chapter 3 takes you through a tour of back-end development. The chapter deals with creating a database table to hold the reviews of the restaurant, setting up a basic form for data entry, and processing data and adding it to the database. You will see how to list your existing reviews and modify your reviews.
Chapter 4 deals with the front-end development. You will see how to list and display your reviews, and add and display comments for your reviews.
Chapter 5 is about module development. Starting with registering your module in the database, the chapter then shows you how to create and configure a basic module using helper classes to centralize data access and output, and how to display the latest reviews or a random review.
Chapter 6 deals with expanding your project with the Model, View, and Controller pattern. You will learn how to build data models, how to migrate to views, and how a controller is used to handle the logic flow of the component. It also introduces you to the concept of pagination and shows you how to add pagination and at the end how to display additional toolbars.
Chapter 7 is completely dedicated to plugins. You will create a link plugin, and an information box plugin. At the end, you will see how to use plugins to enable searching of your reviews.
In Chapter 8, you will see the configuration settings for extensions; modules, components, and plugins.
In Chapter 9, you will see how to package a completed component and module for deployment.
Joomla! is the world's hottest open-source content management system, and the winner of the 2006 Open Source CMS Prize.
While Joomla! is packed with features, its greatest quality is that it is extremely extensible, allowing any number of complex applications to be cleanly integrated. Shopping carts, forums, social networking profiles, job boards, and real estate listings are all examples of extensions developers have written for Joomla!. All of these can run off one Joomla! site, while only one database, template, and core need to be maintained. When you build an extension to Joomla!, it will inherit the look and feel of the overall site. Any type of program that can be coded in PHP is a potential component waiting to be written!
If you're eager to start creating extensions for Joomla!, this book is for you. Walk through the development of complete Joomla! components and modules with this tutorial for PHP programmers. Written for Joomla! version 1.5 and tested against pre-final releases, this book will get you started coding your first extensions as quickly as possible, and adds the features that will make your work look professional!
The book builds example extensions to create, find, promote, and cross-link restaurant reviews. A component will handle common data items seen across all reviews such as price range, reservations, cuisine type, and location. Your visitors will be able to search and sort through the reviews; adding their own criteria to zero in on their dining options for the evening.
Your modules will highlight new reviews, drawing the attention of frequent visitors. Finally, plugins will pull pieces of the reviews into feature articles and others will integrate them into searches. Even if you don't own a restaurant, you will still find the code applicable to your own development projects, and the skills you develop will make you a Joomla! developer to be reckoned with!
A rapid and easy-to-follow introductory tutorial to help you use PHP code to create your first Joomla! extensions: modules, components, and plugins.
Slashdot: Even if a reader initially had no interest in developing their own extensions to Joomla, this book could easily spark their interest, given that the book shows just how powerful those extensions can be, as well as how doable they are, by any competent programmer familiar with PHP and MySQL. In fact, even if the reader were to later decide that they had no interest in creating any extensions, they could still benefit from the book's discussion of how components are structured within Joomla — a more clear explanation than anything I have seen in the official Joomla documentation. Joomla may be an excellent CMS, but the documentation quality does not come close to the value of Joomla itself. That is why there is such a great need for books such as this one. -- Michael J. Ross, Web Developer, Slashdot:
A practical tutorial, based around the development of coherent example throughout the book. Each chapter walks you through the steps to add a required feature to the extension.
Who this book is for
This book is suitable for PHP programmers who want to take their first step in customizing and extending the features of Joomla! through custom PHP development. It is not a reference guide for advanced Joomla! developers.
You need only the basics of PHP programming; no experience of developing Joomla! extensions is assumed. You are expected to be familiar with the general operation of Joomla!