Learning Joomla! Extension Development
Michael J. Ross writes "One of the most powerful and popular content management systems (CMSs) is Joomla, a superior derivative of Mambo. Out of the box, Joomla makes it relatively easy to build Web sites that allow collaborative editing of content, attractive styling via prebuilt templates, and many more features. A Joomla-based site can be further improved by adding custom modules, components, and other extensions to the CMS, without any modification to the core Joomla code. A resource that explains how to do this, is Learning Joomla! 1.5 Extension Development: Creating Modules, Components, and Plugins with PHP, by Joseph L. LeBlanc." Read on for the rest of Michael's review.
Learning Joomla! 1.5 Extension Development
author
Joseph L. LeBlanc
pages
176
publisher
Packt Publishing
rating
8
reviewer
Michael J. Ross
ISBN
1847191304
summary
A practical tutorial for creating Joomla! 1.5 extensions
The book is put out by Packt Publishing, under the ISBNs 1847191304 and 978-1-847191-30-4. The publisher maintains a page on their site dedicated to the book, where visitors can read summaries of the chapters and the overall book, order the e-book version (in PDF format) at a discount, download the book's sample source code, read and submit errata and feedback, and download a sample chapter, namely, "Chapter 1: Joomla! Extension Development: An Overview" (also in PDF format). Note that, as of this writing, the errata and feedback do not have their own links, but are located on the page accessible via the link "Code download," which should be clarified.
The book's title page bills it as "A practical tutorial for creating your first Joomla! 1.5 extensions with PHP," and that is exactly what the book is. Rather than organizing the information in a cookbook style — which is quite popular in programming books nowadays — this particular one uses a narrative approach, in which the author illustrates the concepts by stepping the reader through an example project. He begins with a clean install of Joomla, without any of the sample data, and shows how to "build extensions to create, find, promote, and cross-link restaurant reviews."
The nine chapters of the book are organized in a logical manner, and in the order that the typical developer would go about extending a Joomla-based site: overview; Joomla's component structure and registration; backend and front-end development; module development; using the model-view-controller design pattern (MVC); creating plug-ins; adding configurability for the extensions that you have created; packaging the extension elements for use by other Joomla developers.
In explaining the key concepts and procedures for building custom extensions to a Joomla site, the author takes a methodical approach, with a healthy balance between exposition, sample code, and illustrative figures. The chapters read quickly, and the code changes from one section to the next are helpfully bolded. The chapter summaries, as with most programming books, add no value, and could be beneficially dropped, thereby saving space.
The author states in the first chapter that there are three types of extensions within Joomla: components, modules, and plug-ins. This could be confusing to anyone who has read the articles that help introduce Joomla to the new developer, and are contained in the sample data found in Joomla version 1.5. Those articles include one titled "Extensions," which lists two additional extension types — templates and languages — not considered such by LeBlanc. However, that article does not make clear as to why templates and languages should even be considered extensions, which seems counterintuitive at first glance.
The presentation of all of the material in LeBlanc's book is not perfect, but it is certainly more than adequate. It is unfortunate that the book does not have a lay-flat binding, which tends to be more of a problem with slender volumes such as this one (176 pages), since much thicker books have more weight to keep both sides down on the table at the same time when the book is open. All of the screenshots have a bit too much pixelation, which makes the smallest text within the screenshots more difficult to read. However, none of that text is unreadable. The book's text outside of the screenshots is quite easy to read, with a generously-sized font and a logical layout of each page's material. Almost every page has two horizontal lines, one at the top, and one at the bottom; they serve no purpose, and could be eliminated to save ink and space, as could the brackets around every page number. The same is true for the much larger and thicker brackets used to delineate warnings, notes, tips, and tricks. There were a few other very minor flaws in the book. For instance, in the information about the reviewer, "MySQL" is misspelled. In the Table of Contents, the "Available Toolbar Buttons" line appears to be one font size too small, and thus inconsistent with the other subsection heads. All of these weaknesses are of little consequence and could be fixed in the next edition.
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.
Although Learning Joomla! 1.5 Extension Development: Creating Modules, Components, and Plugins with PHP has some weaknesses — as do most if not all technical books nowadays — for any developer interested in getting the most out of Joomla by building custom extensions, LeBlanc's contribution should prove especially informative and useful.
Michael J. Ross is a Web developer, freelance writer, and the editor of PristinePlanet.com's free newsletter.
You can purchase Learning Joomla! 1.5 Extension Development from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
The book is put out by Packt Publishing, under the ISBNs 1847191304 and 978-1-847191-30-4. The publisher maintains a page on their site dedicated to the book, where visitors can read summaries of the chapters and the overall book, order the e-book version (in PDF format) at a discount, download the book's sample source code, read and submit errata and feedback, and download a sample chapter, namely, "Chapter 1: Joomla! Extension Development: An Overview" (also in PDF format). Note that, as of this writing, the errata and feedback do not have their own links, but are located on the page accessible via the link "Code download," which should be clarified.
The book's title page bills it as "A practical tutorial for creating your first Joomla! 1.5 extensions with PHP," and that is exactly what the book is. Rather than organizing the information in a cookbook style — which is quite popular in programming books nowadays — this particular one uses a narrative approach, in which the author illustrates the concepts by stepping the reader through an example project. He begins with a clean install of Joomla, without any of the sample data, and shows how to "build extensions to create, find, promote, and cross-link restaurant reviews."
The nine chapters of the book are organized in a logical manner, and in the order that the typical developer would go about extending a Joomla-based site: overview; Joomla's component structure and registration; backend and front-end development; module development; using the model-view-controller design pattern (MVC); creating plug-ins; adding configurability for the extensions that you have created; packaging the extension elements for use by other Joomla developers.
In explaining the key concepts and procedures for building custom extensions to a Joomla site, the author takes a methodical approach, with a healthy balance between exposition, sample code, and illustrative figures. The chapters read quickly, and the code changes from one section to the next are helpfully bolded. The chapter summaries, as with most programming books, add no value, and could be beneficially dropped, thereby saving space.
The author states in the first chapter that there are three types of extensions within Joomla: components, modules, and plug-ins. This could be confusing to anyone who has read the articles that help introduce Joomla to the new developer, and are contained in the sample data found in Joomla version 1.5. Those articles include one titled "Extensions," which lists two additional extension types — templates and languages — not considered such by LeBlanc. However, that article does not make clear as to why templates and languages should even be considered extensions, which seems counterintuitive at first glance.
The presentation of all of the material in LeBlanc's book is not perfect, but it is certainly more than adequate. It is unfortunate that the book does not have a lay-flat binding, which tends to be more of a problem with slender volumes such as this one (176 pages), since much thicker books have more weight to keep both sides down on the table at the same time when the book is open. All of the screenshots have a bit too much pixelation, which makes the smallest text within the screenshots more difficult to read. However, none of that text is unreadable. The book's text outside of the screenshots is quite easy to read, with a generously-sized font and a logical layout of each page's material. Almost every page has two horizontal lines, one at the top, and one at the bottom; they serve no purpose, and could be eliminated to save ink and space, as could the brackets around every page number. The same is true for the much larger and thicker brackets used to delineate warnings, notes, tips, and tricks. There were a few other very minor flaws in the book. For instance, in the information about the reviewer, "MySQL" is misspelled. In the Table of Contents, the "Available Toolbar Buttons" line appears to be one font size too small, and thus inconsistent with the other subsection heads. All of these weaknesses are of little consequence and could be fixed in the next edition.
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.
Although Learning Joomla! 1.5 Extension Development: Creating Modules, Components, and Plugins with PHP has some weaknesses — as do most if not all technical books nowadays — for any developer interested in getting the most out of Joomla by building custom extensions, LeBlanc's contribution should prove especially informative and useful.
Michael J. Ross is a Web developer, freelance writer, and the editor of PristinePlanet.com's free newsletter.
You can purchase Learning Joomla! 1.5 Extension Development from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
should be punishable by death.
maybe not death... but at least torture... it is legal now...
- Your stupidity got you into this mess, why can't it get you out? -Will Rogers
But! It! Works! For! Yahoo! !!
Just junk food for thought...
What about your province?
How does it compare with Drupal or PHP-Nuke? Never found all that many differences between the PHP based CMS's (Can you say SQL injection?), and the best java ones aren't open source.
ad logicam Claiming a proposition is false because it was presented as the conclusion of a fallacious argument.
What the fuck people. Feisty Fawn? Joomla? why is it that the geekier you have to be to use something, the more it sounds like it was named by someone sipping on meth/mescaline/LSD cocktails?
Living With a Nerd
Ending your province with an exclamation point is almost as annoying as putting sound on your webpage.
ad logicam Claiming a proposition is false because it was presented as the conclusion of a fallacious argument.
>Out of the box, Joomla makes it relatively easy to build Web sites that allow collaborative editing of content, attractive styling via prebuilt templates, and many more features.
I.E.
Makes it relatively easy to put together a website that allows lots of attackers to inject their data into the system, exploiting vulnerabilities you are completely unaware of, embedded in the guts of a multi megabyte codebase you downloaded and threw into cgi-bin.
Evil people are out to get you.
CMS is part of VM/370 AKA VM/CMS
PLEASE DO NOT use this term for your crummy microcomputer "products".
TIA.
These are problems, but jeez -- why mention them in a book review? And he left out whether or not the colors in the logo were 100% accurate to Joomla's CMYK specifications....
$nice = $webHosting + $domainNames + $sslCerts
I mean, it's great that the reviewer has found their soulmate and everything, but I'm having a hard time expecting much in the way of objectivity from this review...
Your review could be beneficially dropped, thereby saving space.
I'm the guy who writes those chapter summaries, you insensitive clod!
Synchronize your calendar and mobile phone via text messaging.
Probably, but they are in Canada, isn't that punishment enough, eh?
Oh, completely. I started writing i18n add-ons for Zope and Plone the same way. I was on the BART train, heading to Oakland to catch an A's game, and I wanted something to read, so I looked under the seat and the Zope book was there. I had absolutely no interest in Python-based content management systems -- seriously, I didn't even have a Web site -- but I scraped the gum off the front cover and started reading anyway, and after a few stops I was hooked. I ended up taking the book into the Coliseum with me and had my first ZPT code written before the 4th inning.
Breakfast served all day!
For What It's Worth, I've never used Joomla, but I do have a few Drupal sites. Druapl definitely takes the security of the platform seriously, and they fix up vulnerabilities quickly.
Over the security mailing list, I haven't seen an SQL injection attack in as long a I can remember. Lately, it's all been XSS. Anyhow, they're good about getting the word out to Drupal admins whenever anything is discovered in Drupal core or contributed modules.
Joomla probably has something similar, but I don't know about such things.
They don't grade fathers, but if your daughter's a stripper, you fucked up. --Chris Rock
Just to make it clear to any idiot mods who might attempt to give the parent a +1 Insightful/Interesting, Saskatchewan doesn't include an exclamation point in it's name. That's merely a marketing gimmick on their provincial website (and trust me, Saskatchewan can use all the marketing gimmicks it can get ;).
Not knowing the difference between "explanation" and "exclamation" should be punishable by death.
My user number is prime. Is yours?
Any content management system that needs to replace wholesale the main content capability to be able to categorise content in more than one category (or more than two levels of categorisation) is fatally flawed. I was assigned to a project in Joomla and within a week was begging (successfully) to use anything else - WordPress, Drupal, anything.
Very happy with Drupal now. The default install is bare-bones, by design, but you can duplicate all the Joomla functionality with a few of the modules on drupal.org and you're up and running, without the absurd restrictions, underpowered plugin hooks (something like nine in 1.x?) and godawful ugly outputted code.
It's not an exclaimation point. It's an upsidedown 'i'. It's better than the other option iJoomla, if you ask me. :-)
We suffer more in our imagination than in reality. - Seneca
Compared to the Americans, I think Canadians have it good. Let's go down the US checklist: 1) Start pointless wars with other countries costing billions of dollars, and ensuring that the people of those places are able to pass more hate for them on to the next generation. Pass that war effort cost on to the taxpayers! 2) Privatized medical system, making it so HMOs can deny you care and bill you on the silliest of claims. 3) A president so bent on his own acquisition of wealth that he's willing to sacrifice the value of your dollar to get more. Stick that in your haliburton and smoke it. 4) A government that supports invasive and unconstitutional tactics on it's own people to meet it's own agenda 5) A charter of rights which seems to be suspendable any time someone with enough power sees fit. 6) A country that rewards it's 'heros' by crapping on them when they are no longer needed. 7) A population of people too complacent to do anything about their own corrupt system. Yeah, I'm pretty sure Canadians have it better. Please try again!
Informative titles are one of the most basic usability principles. Any programmer who can't grasp something this basic is probably going to have a lot of other usability issues with their software.
Case in point, we have a product named "Joomla". The Joomla administration has links to sections ambigously titled "Modules" and "Components". What's the difference between the two? Don't they refer to the same thing? And "mambots"--need I say more?
Ergonomica Auctorita Illico!
...is this just advertising on slashdot? Is this *really* news?
But the really special treatment should be reserved for people that begin their product name with a period.
I checked out Drupal and Mambo/Joomla for a large site I setup and went with Drupal. Joomla's URL aliasing setup was awful compared to Drupal. It makes sense since Mambo (on which Joomla is based) originally only supported it as a commercial add-on created by one of its core developers. With Drupal, friendly URLs were built in from the beginning.
Basically, Joomla is easier to setup and add modules... but nowhere near as customizable or as extensible as Drupal. If you don't mind doing a little bit more learning up front, you can do far more with Drupal.
Portable versions of Firefox, GIMP, LibreOffice, etc
Spring, Struts, Ruby on Rails, AJAX, JavaServer Faces and on and on. I'm starting to feel framework fatigue. Yet another book, on yet another framework. Before you've even mastered the current frameworks, there's another one. Sorry, I'm suffering from framework fatigue.
that just means it's hidden
Build your own website - full service homepage system your m
Seriously realeasing a book before Joomla! 1.5 is even released that is pretty bad.
u gotta remember, these are teenagers who haven't grown up and think sci fi series like stargate sg1 are well acted and well scripted.
A: Because it breaks the flow of a message.
Shutting down free speech with violence isn't fighting fascism. It IS fascism!
Unlike Westward Ho! in England or Saint-Louis-du-Ha! Ha! in Quebec which do include exclamation points in their names. The annoyance level of such namings is left as an exercise for the gentle reader.