Please create an account to participate in the Slashdot moderation system


Forgot your password?

Building Websites with Joomla! 1.5 129

Michael J. Ross writes "Web developers are oftentimes under pressure to build attractive sites as quickly as possible, and thus they are increasingly making use of content management systems (CMSs), which offer most of the functionality typically needed in a site, such as user authentication, site-wide styling, and of course managing content contributed by site owners and users. Joomla is an extremely popular and heavily-used CMS, partly because it is one of the easiest to install, configure, and use as a starting point for a new site. But with all CMSs, Joomla's online documentation and forums can prove frustrating to the new developer. Books such as the recently published Building Websites with Joomla! 1.5 are intended to fill that gap." Keep reading for the rest of Michael's review.
Building Websites with Joomla! 1.5
author Hagen Graf
pages 384
publisher Packt Publishing
rating 7/10
reviewer Michael J. Ross
ISBN 184719530X
summary An introductory-level guide to the latest version of Joomla.
Written by Hagen Graf, with a guest chapter by Angie Radtke, Building Websites with Joomla! 1.5 was published on 28 March 2008 by Packt Publishing, under the ISBNs 184719530X and 978-1847195302. It is an update of his earlier book, Building Websites with Joomla! v1.0, put out by the same publisher. Like the previous edition, this latest one is aimed at beginning and intermediate Web developers who wish to learn how to make the most of Joomla for building new sites or maintaining existing ones that they have inherited.

The author has organized the book's material into 17 chapters and seven appendices, covering the major topics of interest to Joomla developers: terms, concepts, and sample sites; Joomla installation; a site's major elements; customization of language, and by templates; the administrative interface; the primary menus (Site, Menus, Content, Components, and Extensions); some commonly used tools; some popular extensions; writing templates; accessibility; MVC, components, modules, and plug-ins; building a sample site; and analysis of some bonus templates. The book's 384 pages conclude with a rather sparse index.

On the publisher's Web page, visitors can read more about the book, download the sample code, post feedback or a question, read the online table of contents, and download a sample chapter, namely, the second one in the book, on Joomla installation. The publishers also make it possible to purchase an electronic version of the book, which could be especially handy for any reader who would like to reference the book while working off-site, and without lugging the print version along with their laptop.

The publisher's site characterizes it as a "fast paced tutorial," but the book gets off to a slow start, on a micro level and on a macro level. The first eight paragraphs are devoted to explaining the concept of a content management system, and its variations, which is essentially a waste of space for the typical reader of such a book. Any developer interested in reading a Joomla book certainly does not need such a lengthy explication. If the purpose is to enlighten people unfamiliar with how Web applications work, then more care should be devoted to clarifying phrases that would confuse such neophytes, such as "the net." In fact, most of the introductory material could be excised or summarized. In addition, Mac users will not be pleased with the PC centricity, unremedied until Chapter 2. The first chapter later bogs down in a wearisome comparison of a Web site with a piece of real estate. Throughout the chapter, the level of discussion alternates between quite simplistic — presumably for the complete neophyte — to intermediate. It is as if the author realizes that there is a tremendous amount of material to cover, and thus needs to move along at a decent pace — one that can be comprehensible to intermediate programmers — and yet occasionally interjects overly simple material, in the hopes of not leaving behind the newbies. Overall, it doesn't work, and the chapter in particular, and the book in general, should instead target Web developers who have some experience with CMSs, or at least basic Web site creation.

The second chapter explains what underlying technologies are needed in conjunction with Joomla, and how to install them for testing. Readers should note that page 31 may give the impression that XAMPP is the only available package that includes Apache, MySQL, and PHP — but it is not. The third chapter provides a nice overview of the various major components on the homepage of a brand new Joomla site. One minor flaw is in the image on page 52, in which the "Resources" menu should be placed above the "Key Concepts" menu, as seen on page 54 and as seen by the reader if they are following along using their own Joomla installation (a practice highly recommended by both the book's author and this author).

Chapter 4 demonstrates how to install a different language for the public site and the administrator site — in this case, German. Readers whose primary or only language is English may be confused as to why the author begins the detailed Joomla coverage with this more specialized topic, rather than starting with the material found at the beginning of the next chapter. It is possible that the author concluded that the rest of the reading audience would want to first install the language module for their primary language, which makes sense. On page 68, the author refers to the template named Kepri as "previously introduced," but I can't find where this was done, and the index is of no help (it does not even have a section for the letter K). Far more confusing, and irritating, is when authors make reference to some file that the reader cannot find. For example, Hagen Graf instructs the reader to "download the language files from the German translation team's website." Sure, but where? Four pages later, we are told to upload, but not where to find the file. It turns out that it is in 5302_Code/chapter 16/, in the downloadable sample code from the publisher's site.

The fifth chapter is almost as short as the fourth one, and briefly describes the configuration of the Joomla administration site. The author recommends that readers still using Internet Explorer switch over to Mozilla Firefox (amen), yet oddly describes Firefox as two different browsers. There are some other minor flaws: The list of 17 toolbar elements, on page 72, would be more efficient if it were alphabetized. The second illustration on page 73 supposedly shows the results of filtering for enabled modules only, and yet the drop-down menu does not reflect that. The version numbers stated in the text on page 77, do not match those shown in the illustration on that page. Yet none of these blemishes lessen the value of the material.

Chapter 6 covers the Site menu, whose components can be accessed directly from the menu items or from icons on the Control Panel page. The author asserts that the icons allow faster access, but actually the menu items are more direct. The chapter is informative, and would be more so if the author explained what is really happening with — and how to utilize — debug messages ("Debug Language").

Chapters 7 through 10 go into the details of the Menus, Content, Components, and Extensions menus. Most of the explanations are straightforward, except that on page 143, whose third paragraph is downright baffling; also, the "Default Section Layout" and "Archive Blog" display formats mentioned are not available or even shown in the illustration on the previous page. On the first page of the seventh chapter, the author begins to introduce "an example from," but apparently forgot to include the example itself. Also, in the discussion of "Parameters — Component," the last two options — Target and Icon — were neglected.

Chapter 11 briefly describes three of the built-in tools, and Chapter 12 shows the reader how to install some popular extensions for customizable message boards, document management, and image galleries. The coverage of the extensions is enough to get the reader started, but the author really should explain why the reader would need to reboot their computer after installing Fireboard (page 203), or even restart the Apache server, if that is what the author meant.

With Chapters 13 through 15, Hagen Graf shifts to Joomla topics that would be of most interest to veteran Web programmers: how to develop your own templates, components, modules, and plug-ins. Sadly, at this critical juncture, the narrative and sample code become noticeably more muddled and confusing than what is found in the earlier chapters (which mostly consist of explaining the individual controls within Joomla's administrative area, and are thus easier to get right). For instance, to readers unfamiliar with div tags (likely a minority), the author recommends "selfhtml," without explaining what or where it is; presumably it is the German site SELFHTML, which is of no value to the English language readers of this book. Further on, the template provided in the downloadable code styles one's Joomla site as if no template were even in use, and not like the preview thumbnail image. The author's reference on page 229 to "one command" is baffling, and the publisher's left-justification of all the CSS rules makes the template's CSS even less readable. By the time readers reach the section titled "Integration of the Joomla! Module," they may be quite frustrated, and asking themselves, "What Joomla module?!" — despite the author's self-congratulatory comment "this has worked so well."

Chapter 14 was written by Angie Radtke, co-creator of the increasingly popular Beez template, which offers a lot more flexibility than most if not all other Joomla templates. She discusses Web accessibility ("barrier freedom") in general, and as implemented in particular by her template. The general discussion would be of interest to anyone unfamiliar with how to make Web sites more accessible, and is more thorough than what is found in some other Web design books. The template discussion would primarily be valuable to anyone developing a new template — especially one based upon Beez — and who is otherwise not aware of accessibility considerations. However, in any future editions, the HTML and CSS code should certainly be formatted better. For more advanced Joomla developers, Chapter 15 may be the most compelling one of all, because it describes how to create your own components, modules, and plug-ins — starting with an overview of the Model-View-Controller (MVC) design pattern.

In the penultimate chapter, the author steps through the process of setting up a simple Web site (in this case, for a winery). Working through the example will help readers solidify the knowledge they gained in the earlier chapters. It would also be handy for someone proficient with CMSs who simply wants to try Joomla in the least amount of time — somewhat like a quick-start guide. The book states that Joomla does not have an e-commerce shop component. Presumably the author is referring to the fact that, at the time of his book's writing, VirtueMart did not yet support Joomla 1.5; the latest release apparently does. Lastly, much of the vintner story is superfluous and could be condensed or cut. The last chapter briefly discusses a number of available templates. The book concludes with seven appendices, most quite brief: online resources; jdoc details; two methods for changing a template logo; a link to the Joomla API; how to reset the admin password; how to migrate a Joomla version 1.0 site to 1.5; the PHP register_globals setting apropos of Joomla security.

Like so many technical books, this one certainly has its noticeable strengths and weaknesses. The author's high regard for Joomla, as well as his extensive experience with it, is truly evident throughout his book. Also, he does touch upon all the major areas that would be of interest to the Joomla programmer.

However, the book's writing could be cleaned up and clarified a great deal. It could certainly use a lot more well-placed commas to increase readability — especially for the many run-on sentences — and far fewer exclamation marks. On a larger scale, the chapter summaries add no value and should be cut. The book contains many compound adjectives lacking hyphens, just as there are a few complete statements incorrectly separated by commas and not semicolons. Many of the expressions are rather odd and puzzling; for instance, "graphic scripts" (page 250), "easiest solution nothing shifts" (page 258), and "barrier freedom" instead of the much more universal term "accessibility." Non-German readers may be turned off by the book's German centricity. Furthermore, readers don't need to be told, twice, that the German translations were done by the German translation team. The book contains at least 49 errata (which I have reported to the publisher). These do not include countless instances of the term "that" being used incorrectly in place of "who," by both the primary and guest authors. Given the considerable number of errors, the reader may begin to wonder whether the book was edited prior to production.

The book falters most when it veers away from Joomla administration toward marketing and business topics. For instance, eBay is characterized as a "flea market" (page 55), but it is more of an online auction. On the same page, the discussion on advertising, frozen spinach, etc., adds no value to the book, could easily puzzle readers, and is somewhat disjointed from the topic at hand — contradicting the author's assertion that the book is cohesive (same page). Overall, the book could use a fair amount of trimming.

In terms of the book's production, the quality is fine, but Packt Publishing is the only technical publisher that I know of that insists upon using a glossy ink, which makes the book's pages somewhat difficult to read depending upon the angle of one's reading light as it bounces off the page. Also, whoever set the text on the pages should have refrained from removing most of the indentation from the code.

From an editing perspective, Building Websites with Joomla! 1.5 is in need of considerable improvement — especially those passages that will prove most confusing to readers. But from a technical perspective, the book offers a lot of valuable information to new Joomla developers, and could easily become the preferred resource that they turn to when building their first Joomla Web sites.

Michael J. Ross is a Web developer, writer, and freelance editor.

You can purchase Building Websites with Joomla! 1.5 from Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
This discussion has been archived. No new comments can be posted.

Building Websites with Joomla! 1.5

Comments Filter:
  • by overtly_demure ( 1024363 ) on Wednesday May 14, 2008 @02:30PM (#23407232) Homepage Journal
    When you get down to it, the learning curve for CMSs like Joomla is close to that required to just sit down and code a site in your favorite scripting language. At least it feels that way.

    I do not agree that non-geeks have a happy and easy time setting up, running, maintaining, and extending their sites with CMSs. They end up hiring coders or other geeky types to take care of it just as they would hire someone to write the site from scratch. If I am wrong, how far off the mark do experienced Joomla users think I am?

  • by AchilleTalon ( 540925 ) on Wednesday May 14, 2008 @02:48PM (#23407560) Homepage
    I have the same comment. My first question was: What Joomla is build on? And I looked at the Joomla's site clicked on details without success then documentation and then the Wiki to finally came back here and see the fifth paragraph with MySQL, Apache and PHP mentioned. Is it so difficult to have a short notice with the prereqs on top of the description of a product? Seems to me this is always the first question, do I meet the requirements for installation.
  • Pretty far (Score:5, Insightful)

    by SuperKendall ( 25149 ) on Wednesday May 14, 2008 @02:59PM (#23407766)
    If I am wrong, how far off the mark do experienced Joomla users think I am?

    I'm speaking as a Drupal user, but I feel my comments would pretty much apply directly to Joomla as well.

    I know a lot about web programming. I've set up corporate portals from scratch in Java, and used various JSP and PHP scripting solutions to do smaller sites. I've also looked at frameworks like Grails and RoRails and so on.

    But in the end, can you really set up something in those quickly that offers a user who is not you an easy way to add content quickly? That provides nice search engine URL's, common theming across the whole site, a forum, email support, user account registration, and so on and so forth? What about having someone else constantly research and issue security updates?

    Yes I could build all that but using a CMS like Drupal or Joomla saves months and months of work for any kind of real functionality, and with that time saved you can work on some other code or customize the hell out of the CMS you are using, or add content (presumably why you put up the site to start with) or whatever. People have written so many CMS systems, I think you have to look at what you are trying to build and say to yourself - is what I am doing so much different that the world needs another system just like it?

    CMS's are great for geeks for the same reason they are good for everyone else - they let you have more time to work on a problem that is truly unique and interesting.

  • by rho ( 6063 ) on Wednesday May 14, 2008 @03:42PM (#23408486) Homepage Journal

    Pre-packaged CMSes are valuable. My problem with them is that, in general, if you want or need to extend them, you have to learn a sub-set of whatever language the CMS is written in. You're not writing a PHP module, you're writing a Drupal module, that if you want to continue to use through various Drupal versions you have to stick closely to the Drupal Way Of Doing Things. I don't have any experience with Joomla, but I imagine it's similar.

    Contrast that with something like the Zend Framework. You're still writing PHP, but using ordinary PHP classes that implement useful things. At some level it's basically the same thing as Drupal or Joomla, but IMO the same effort results in a much more flexible application and less likely to break in exciting ways.

    (If your needs are fully met by a CMS then it is foolish to reinvent the wheel. The CMSes have already encountered and solved many problems that you'll have to slog through with your homemade application.)

  • by Abcd1234 ( 188840 ) on Wednesday May 14, 2008 @03:50PM (#23408616) Homepage
    With a name like Joomla I assumed it was written in Java (Java Object Oriented blah blah....) and almost stopped digging any further. Is it bad that I automatically assume that any technology whose name begins with J is written in Java?

    No, what's bad is that you thought it was based on Java, and then nearly dismissed it out of hand.
  • by LunarStudio ( 836038 ) on Wednesday May 14, 2008 @04:10PM (#23408930) Homepage
    Joomla in a short summary is like a nail on a chalkboard and peeing into the wind all at the same time.

    It's an awful schizophrenic jumble of programmers all trying to reach into the cookie jar at once.

    It's a nest without a Queen Bee.

    Anyone that tells you it's great:
    1) Likes to see you suffer.
    2) Wants to make themselves feel superior to you.
    3) Probably hasn't used another CMS.

    You need to extend its functionality? Sure thing someone has it - it will cost you money.

    You want to find a template? Sure we've got tons. They all look the same if you don't mind. Plus, by the way we will charge you for it.

    The short and simple is that most people don't need this overblown system. Most of the time you can find what you need in an older, time tested blogging system (I'm not going to get into that whole CMS/Blogging system difference argument here.)

    All the sane people that I know that have used this (including myself) have found that Joomla! is unnecessarily complicated for the average to advanced user. There's far more intuitive options out there.

  • by Crudely_Indecent ( 739699 ) on Wednesday May 14, 2008 @04:15PM (#23408998) Journal
    The big advantage to a CMS for a developer is that you can deliver a good site that will stay looking good (almost) regardless of what the inexperienced customer does.

    For example, one of my customers is about 80 years old. His only request was that he be able to edit his price lists without my interaction.

    Do I choose to teach this man frontpage (or some similar wysiwyg editor) or do I install a component that will let him do exactly what he asked. I'll go for the latter and reduced training time.

    My customers are absolutely in love with their new sites.

    At any rate, it's far easier to take advantage of an existing codebase and make minor modifications than to write from scratch. I wasn't a big fan of CMS applications until I found Mambo (later Joomla)
  • by skelly33 ( 891182 ) on Wednesday May 14, 2008 @04:19PM (#23409070)
    This is precisely why I have migrated away from any off-the-shelf CMS. I had been using Mambo for years and switched to Joomla when they split apart (made sense to follow the original developers). After building dozens of components and modules to extend the framework's wrapper around custom interfaces, I have numerous gripes about the planning, revision history, maintenance, and general short-sightedness of Mambo/Joomla in many respects. But it all pales in comparison to the threat of security breaches that could compromise the core assets of a business who relies heavily on the custom application.

    I could have hacked custom fixes and features into the CMS code tree to fix specific problems as they arose, but then a critical security fix or update to the CMS would wipe out all those changes. I could have tip-toed around the needs of the CMS and just patched it each time something new came out, but then I'd have to watch closely yet another piece of software for critical updates - and given the speed with which I've seen massive exploit automation roll out, it is not worth the risk to the company that I might be too slow to do this by hand.

    So, as much as I enjoyed the friendly interface and ease of getting started for Joomla, I begrudgingly began abstracting my customizations to minimize the hooks into Joomla/Mambo. Finally when all the prep work was done, one day I built a custom framework around the custom portions of the app as a substitute for the CMS and at last it just "went away" - it doesn't take that much to build basic session management, a database class, a simple admin panel and an extension engine. What I have now is more robust and has far less security exposure than Joomla, at the expense of the bulk of the CMS features that Joomla is so widely acclaimed for. For most of my projects, it wasn't so much the CMS that was of interest as the framework for session-based application building.

    I am 200% more confident now that I will not come to work in the morning and find the site replaced with an inappropriate message and all our data gone. If you're sitting on Joomla or ANY readily available framework - I don't care if it's Drupal or Zend or whatever - weigh the risk versus the small amount of effort that it would take to build just what you need from scratch so that there are no predictable/scriptable points of entry.
  • Drupal (Score:3, Insightful)

    by lilfields ( 961485 ) on Wednesday May 14, 2008 @05:12PM (#23409830) Homepage
    I've been using Drupal for a while, I had tried using Joomla (among many others) but it was actually a pain to customize and make look truly professional; I found Drupal to be the best fit to many websites I've done, and it integrates nicely with vBulletin which is a popular request. However, I've still never found a CMS that I absolutely love, I suppose all of them are lacking that little something that pushes them over the edge to getting my all around recommendation.
  • seaside (Score:1, Insightful)

    by Anonymous Coward on Wednesday May 14, 2008 @05:17PM (#23409924)
  • Re:Drupal (Score:3, Insightful)

    by Solder Fumes ( 797270 ) on Thursday May 15, 2008 @01:13AM (#23414292)
    Identical experience and identical final decision. I hacked around with Joomla for a long time, ultimately unable to do what I really wanted to do: create my own theme. Googling for tutorials all returns the same regurgitated five page tutorial with broken links to the source files, and no actual useful content. Drupal isn't perfect, but I was able to get it running and grok what was necessary to create my own themes. Joomla is great for people who like to use premade themes and similar menu and basic layout as thousands of other sites (a lot of them throwaway copy-paste Adsense farm blogs).

I've finally learned what "upward compatible" means. It means we get to keep all our old mistakes. -- Dennie van Tassel