Follow Slashdot stories on Twitter


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 qortra ( 591818 ) on Wednesday May 14, 2008 @02:32PM (#23407280)
    After searching through the Joomla main page and the "What is Joomla?" page, I was still unable to find the underlying technology. Even the review doesn't mention it until the 5th paragraph, and then only as an afterthought. Why is it so hard to mention that the CMS is built on PHP? That is information that I really care about (as do many other website developers).

    As a side note, this is why I like Wikipedia. Unlike the Joomla site and this review, it mentions "PHP" in the Joomla article header. Note to website developers; if your "about" page is less helpful than the Wikipedia article, simply take a snapshot of the Wikipedia article and make it your "about" page.
  • by -kertrats- ( 718219 ) on Wednesday May 14, 2008 @02:36PM (#23407342) Journal
    I'm the Managing Editor of the University Register [], campus newspaper of the University of Minnesota, Morris. Last fall we installed Joomla to replace a bizarrely hacked-together mess of a website that was hand-coded by some student years ago that no one knows anymore. It's extremely simple to use (though we still haven't fixed a few small issues, such as the top module not appearing correctly on article pages; this isn't really due to lack of ability as it is lack of effort, as there are more important things for us to do). I would definitely recommend it to anyone that wants a site that's easy to use and configure. As a plus, it's also vastly improved our pagerank on Google, presumably because it's easier to crawl.
  • by bishiraver ( 707931 ) on Wednesday May 14, 2008 @02:41PM (#23407412) Homepage
    Joomla is great for sites that need to be simple, easy to configure, and easy to update for non techies. For any other CMS application (ie, a complicated corporate site, a news site with many contributors and many categories), use something made to be templated extensively. My favorite is Expression Engine, but there are others out there. (disclaimer: I do not work for CI or EE or whatever their parent company is called, I'm just a happy user)
  • pay-to-play (Score:5, Informative)

    by ceejayoz ( 567949 ) <> on Wednesday May 14, 2008 @02:43PM (#23407450) Homepage Journal
    If only so many of the really useful modules weren't pay-to-play.

    Major kudos to []'s policy of only allowing GPLed modules into their download directory.
  • by Xawen ( 514418 ) on Wednesday May 14, 2008 @03:08PM (#23407898)
    For the record, and don't shoot the messenger on this, here's how you change that:

    In the administrator
    -Menus > Main Menu
    -Click Home to edit the home page, or choose the page that needs the layout changed.
    -Change the layout using Basic Parameters on the right. To do what you want, change the "Columns" setting to 1.

    A lot of people have trouble getting used to the conceptual layout of Joomla. As far as the pages go, EVERYTHING revolves around the menus. This is because the menu represents all instances of the pages. In order to change the settings on any one, you change it's settings in the menu configuration.

    It's not the most obvious, but after you work with it a bit it begins to make a lot of sense.
  • by Anonymous Coward on Wednesday May 14, 2008 @03:26PM (#23408238)
    Yes. CMS Made Simple ( This is my preferred CMS. You can enable/disable the WYSIWYG editor, there is also an extension to generate static HTML as per your needs. Its also AMAZINGLY easy to template. Check it out, I'm in love with it.
  • Very true (Score:4, Informative)

    by SuperKendall ( 25149 ) on Wednesday May 14, 2008 @03:41PM (#23408464)
    I'm unfamiliar with Joomla update procedures, but Drupal has pretty good automated checks for updates that are easy to apply.

    That is an important aspect with using any prepacked software that has to live out in the wild... that and just doing sanity checks on the logs from time to time to make sure nothing looks odd.

    However, as I said even if you write your own stuff people might still find holes in it too - at least with the more popular CMS systems people are vigorously testing them.
  • by Dekortage ( 697532 ) on Wednesday May 14, 2008 @03:48PM (#23408584) Homepage

    At least one organization I work with uses Hannon Hill's Cascade [] CMS. It is based on XML/XSL and is arguable the most configuration, extendable, flexible CMS I have ever used (and I've used several, including Joomla, Typo3, and a few that were home-grown). The only downside is that you REALLY need to know XML/XSL if you expect to do anything nice with it. In any case, with proper setup, it can do all of the things you mentioned, and much more. E.g. it has a nice "data definitions" feature where you use XML to describe the interface that content editors see for a specific bit of content: put a date here, plain text here, WYSIWYG text there, select a file to link to, and an image file to display. Then you create some XSL to format all that into nice XHTML for when it gets published up to your web server as an HTML file (or PHP or JSP or whatever you want).

    This is kind of promotional, I guess, but I am happy with it. It is overkill for small sites, but dang, the XML aspects of it are just beautiful.

  • Re:Pretty far (Score:4, Informative)

    by FLEB ( 312391 ) on Wednesday May 14, 2008 @03:48PM (#23408586) Homepage Journal
    There's one reason I'm really happy to see Joomla 1.5 come about. I make sites professionally in a small marketing firm, and our company uses Joomla for a fair number of sites-- I can hack a little PHP, but I'm a designer and front-end HTML/CSS/JS guy first and foremost. The constant and aggravating problem with Joomla 1.0 was that a lot of presentation code was tied up into the core (granted, it was no OSCommerce, but still...). The hacks I had to use to get a more pliable layout meant that any significant update to the Joomla! core meant a long regimen of re-hacking things to turn the TDs into DIVs. Granted, we had a "hacked house version", but it was still a pain.

    Now, with 1.5, template overrides have saved me countless hours-- I can just use presentation template overrides on the few parts of the system I do use, and upgrade the core seperately, as needed.
  • Re:pay-to-play (Score:4, Informative)

    by Dynedain ( 141758 ) <slashdot2@anthon ... m ['in.' in gap]> on Wednesday May 14, 2008 @04:12PM (#23408948) Homepage
    Actually the Joomla team has come to the decision that any extensions of Joomla (except for templates and bridges to other packages) should be GPL, and indicate as such in the extensions directory.

    1.5 was a major rewrite of the Joomla/mambo core and the emphasis moving forward is GPL v2. Of course older extensions are still listed (and flagged as commercial where appropriate) for legacy purposes, but moving forward should have a significant shift towards availability of GPL plugins.

    My own plugins are now GPL after I rewrote them for the new Joomla 1.5 codebase. Not all of them are public releases, but the ones that are, are listed in the Joomla extension directory and clearly flagged as GPL
  • I consider Joomla a potential Web-CMS-market killer application for various reasons:

    - Installation is a breeze. Far superiour to any other CMS of simular featureset.

    - It looks good and is usable. To many webkits look like crap once they are set up for end user mode. Top-of-the-line web designers have pimped Joomlas UI so much that it is a feast to work with. And other projects are scrambling to catch up. Which is a good thing aswell. I find it nearly unbelievable how they managed to improve the 1.5 UI over the 1.0 UI, even though the 1.0 UI allready is way beyond anything else out there.

    - It's built with the ever present LAMP stack in mind, albeit beind independant of it.

    - It's featureset is well thought out and there are countless extensions for it.

    However there are things that the Joomla core team needs to address before they can claim leadership in the field:

    - Flexible Access Controll is missing. There is a hardwired access controll with around about 5-8 roles, but a full blown CMS needs to have as many as the admin needs. Especially if non-trivial extensions are involved. This is a major issue and probably will be addressed in some future release. I hope they do it right and don't screw it up - which easyly can happen with badly implemented access control.

    - People warned me not to look at the data/object model of Joomla 1.0 - so I didn't. I just had looked at that of Typo3 4.0 and barely survived the resulting shock. I presume that the Joomla 1.5 object model still has a few issues, probalby also due to 1.5 having a legacy mode for backwards extension compatability. A (still) less than optimal archtecture could be a showstopper for people who want to build larger applications on top of Joomla 1.5 and the new Joomla 1.5 Framework.

    - They reinvented the wheel like so many others and rolled their own web application framework. I asked the lead developer why they did that instead of using CakePHP or Symfony or something like that and he reasured that they had solid reasons (legacy mode being one) but I'm still wondering if it hadn't been better not to do that. If however the Joomla Framework improves it's API and Documentation enough to catch up with the other large PHP Frameworks this could turn out to be a very good thing. Since the Joomla CMS lowers the barrier of entry into the Framework considerably - especially for non-developers.

    Oh, and btw: Hagen Grafs Book on 1.5 was pushed out of the door even during Beta phase. The German edition even has 'Beta' in the title. I remember thumbing prints of it which where still warm from the press on the last years German Joomladay and Alex Kempkens (a core dev) walking up from behind and saying "That screenshot there isn't up to date anymore - I changed that interface two days ago." Duh. Talking about writing about a moving target :-) .
    Despite the unusual publishing strategy, Hagen Grafs books - the German ones anyway - are good to get you started. I still have a copy of his old Beginners Guide to Mambo.

    The German publisher actually published an updated version of the Joomla 1.5 book a few weeks ago allready.

    And as for the translation and German style wording ... maybe I should offer Hagen some help on that for the next release ... Gonna check if he's on Skype right now. :-)

Nondeterminism means never having to say you are wrong.