Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


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 tmpl_bertrand.zip, 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 joomlart.com," 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 amazon.com. 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 Archangel Michael ( 180766 ) on Wednesday May 14, 2008 @03:05PM (#23407848) Journal
    "I am wrong, how far off the mark do experienced Joomla users think I am?"

    You're wrong. I develop websites for people using CMS (Joomla actually, but I've used Drupal and WebGUI which works just as well) and for rapid development of a decent looking site that the average person can manage the day to day operation (adding/changing content) it is fairly easy. I have one website where the only think I do is the technical side, adding capability, and the daily person is NOT a computer person at all.

    Many hosting companies offer automatic installation and configuration of CMSes using cPanel (or other MGMT system). If a person needs help with cPanel, then they will need some technical support, but once the site is functioning, the average person CAN manage the content by themselves.

    It takes me about 4 hours to fully setup a nice Joomla site, including changing the default template, adding all the various extensions needed etc. In fact, the plugins and modules for CMSes are why I use them. Find the right plugin, and bam you're done.

    The average not to geeky person can easily do most things in CMSes.
  • by Chatterton ( 228704 ) on Wednesday May 14, 2008 @03:10PM (#23407922) Homepage
    Joomla and Al are very good. But, does someone know a CMS with:
      - worflows depending of the kind of content to put online (ie: a news is a different kind of content than an agenda entry than an in-depth article on a subject)
      - where the content editor is not a kind of html editor (ie: if a kind content need 3 kind of information (eg: a date, a title and a text for a news) you are presented with 3 fields to input a date, a single text line for the title and a little editor with the strict minimum of formating possible (Bullets, Bold, Italic and not so much)),
      - that support multilingualism (ie: display the English version of a content on the English version of the page and the XXXX version of the content on the XXXX version of the page and if the content doesn't exist in XXXX display the English one)
      - and the most important feature: Could generate the site as a bunch of static html pages to put on a web server without any kind of server side language?
  • Re:Pretty far (Score:3, Interesting)

    by liquidpele ( 663430 ) on Wednesday May 14, 2008 @03:11PM (#23407952) Journal
    As long as you keep it updated. Website packages like Joomla and Wordpress are prime targets for script kiddies who find example code off of milw0rm.
  • by owlnation ( 858981 ) on Wednesday May 14, 2008 @03:41PM (#23408472)
    No, I think you're not wrong.

    My experience with Joomla (after having used it for a few years now) is exactly what you say -- there's a steep learning curve. The documentation is a lot to blame for that, as the summary says. The documentation appears to be written (as most technical documentation is) by someone who doesn't understand what a new user's questions would be, nor how to approach set-up from start to finish in a step by step way. There's not even a basic guide on how to use it: planning -> install -> configuration options -> themes - > modules -> security etc. A lot of that is assumed knowledge, and as far as config goes, you pretty much have to spend a lot of time testing things out to see what works.

    It seems also much of the more detailed documentation, and documentation for modules and other add-ons is not written by native English speakers. Some of it is completely unintelligible.

    Joomla is usually straightforward if you have a good understanding of CSS, html, and how web files are structured. If you don't, you'd better like the default theme, cos you'll not be changing it. (as an aside you can often tell a Joomla site because the user has no idea how to change the favicon, and the default Joomla one is the one being used.) Also, when something goes wrong, you'll need to call in external assistance pretty much every time.

    My biggest bugbear is the layout and terminology for the admin interface. It's in NO WAY intuitive. I've spent hours sometimes trying to figure out what each thing is and does -- a newbie has no chance with that. I think with dramatically better documentation, Joomla could be easy to use for a newbie. Perhaps this book will help.
  • Re:Pretty far (Score:2, Interesting)

    by Cctoide ( 923843 ) on Wednesday May 14, 2008 @04:28PM (#23409184) Homepage
    The problem with CMSs (specifically the more bare-bones ones to which you're supposed to add plugins, like Drupal), is that, well, as I said, they need plugins to make themselves useful, and sometimes the plugins don't work together well or don't mesh with one another.

    It might be just me, but last January I decided I wanted to create a profissional-looking (or at least profissional-working) newspaper site as a hobby. I know The Onion and Schamper and a whole lot of other online newspapers [drupal.org] run on Drupal, but it certainly wasn't "simple" to do, even with custom logic coding. Views likes CCK but not some of its addons, theming a CCK node is complicated and a View of a CCK node doubly so, especially if you want to show news separated by Taxonomy classification on the front page, like most news sites do.

    After convincing myself that if I were to use a CMS for that site, it would have to be Drupal, I started thinking it would just be a lot easier to code something which worked exactly the way I had in mind... of course, I'm only an amateur programmer who can do slightly decent Perl and, by extension, PHP, so even though I have read a bunch of books on common web application security holes (and associated techniques like CHAP login, session fixation prevention, etc.) the general opinion of the Internet was that "coding your own CMS is an even worse idea".

    Anyway, I'm rambling, but the point is I never got said hobby site working. Maybe if I really had to get it done I could have achieved it (probably by cutting corners and making compromises), but to this day, short of custom-coding, I don't really see a minimally straightforward way of setting up a newspaper-style site (and, relatedly, while googling extensively on the topic I came across a /. post on the subject -- the consensus was Drupal). There's also Expression Engine and a host of whole other commercial CMSs, but at that point you might as well throw in a bit more cash and have the company customize it for you, which takes the fun out of the "hobby" process.
  • Re:Pretty far (Score:3, Interesting)

    by ben there... ( 946946 ) on Wednesday May 14, 2008 @04:44PM (#23409420) Journal

    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.
    Yes, a CMS is especially great for smaller projects for clients who wouldn't pay for all the time it took you to build it from scratch. You get the site setup and get results quickly, pleasing your client, while still charging a decent hourly rate. Then keep that higher hourly rate for all the maintenance work. Most sites I've designed with Drupal have been a fixed rate for the initial design, so the quicker I can get that done, the more money I make.

    I've been looking at Django [djangoproject.com] the past couple of weeks to replace Drupal for some of my sites though. It has a much cleaner architecture (as does Rails), an MVC pattern, and it's in a language that I know well from desktop programming experience, Python. Even if a full CMS is more than you need for a project, a framework such as Django or Rails is worth a look. It handles database abstraction (using ORM), authentication, sessions, caching, and has a decent templating language. It's so MVC that there are actually files named models.py, views.py, and a template directory. models.py has python objects for each table and generates the SQL for you to match. Doesn't get much cleaner than that. Best of all it's not PHP, it's Python, so it actually uses namespaces :-) and PostGreSQL is a more common and better supported choice than MySQL.

    Anyway, my point is that even if you don't want a big CMS package and you want to design much of your site from scratch, it makes a lot more sense to use an existing framework than the underlying language itself. I don't really think I can design a better authentication or session framework, for example, in a reasonable amount of time to be worth coding from scratch. The only downsides to Django are that the blog, forum, and wiki type bundles or distros don't exist yet. So if you need one of those, Drupal is a much easier choice at the moment. Some people are considering putting together ready-to-use bundles (incuding myself), but right now you have to DIY. Also, if you use shared hosting like many people do, you either need specialized Python hosting or you need one of the few major shared hosting providers that offer Python. I use DreamHost, and luckily they do offer Python scripting with FastCGI (but not mod_python).
  • Re:Pretty far (Score:3, Interesting)

    by CrazedWalrus ( 901897 ) on Wednesday May 14, 2008 @05:36PM (#23410242) Journal
    I set up a site for my son's Cub Scout pack using Drupal. It took like ten minutes to set up followed by some tweaking over the next few days. The cub master just took it and ran with it, and, for the most part, it's great. Minimal effort on my part.

    When they'd initially asked me to be webmaster, they were just using static HTML pages on an FTP site, and it was going to be a lot of hand-coding, uploading pictures, all that. I knew I could never make a decent-looking site on my own, as I have no artistic ability whatsoever.

    By setting up Drupal, I was able to give them a framework that did everything they wanted -- permissions for various parts of the site, calendaring (embedded Google Calendar), publish on demand, add forms and flyers, etc -- all in a heartbeat. I would have spent a looong time doing that by hand, and, honestly, I don't have that much time to spend on a volunteer effort like that.

    I've tried Joomla, Wordpress, and Drupal. While I've personally settled on Drupal, Joomla and Wordpress are incredible systems that provide a very solid basis for any site. All that time you would have spent re-inventing the wheel poorly can be spent writing customizations instead, which gets you weeks or years ahead in the long run.

    The difference for me and my volunteer work was the difference between an awful hand-coded site done in a few hours, or a fully-themeable, user-controlled system, ready to go in minutes. It makes the time spent volunteering seem so much more "worth it" when the finished product isn't some half-baked solution they're going to throw out next year.
  • by CrazedWalrus ( 901897 ) on Wednesday May 14, 2008 @05:52PM (#23410474) Journal
    This was my issue with Joomla too. When I tried it out, I immediately recognized that it was extremely powerful software and that, if I spent enough time with it, I could probably make it do lots of cool stuff. Unfortunately, I don't have that kind of patience. After spending quite a lot of frustrating time on the admin interface where things didn't work as I expected, or were buried so deep that I wound up forgetting how to get there, I just gave up and went to WordPress. After using that for a while, I gave that up and went to Drupal, and have been happy so far.

    I'm not religious about CMSs, because they're all obviously well written and very powerful, but the relative ease with which I learned Drupal and even made some simple plugins for an app at I was writing at work really won me over.

    A major point of a CMS is to shorten the startup time. If the CMS takes days to learn the basics and weeks or months to really learn, it isn't really accomplishing that goal. I need something now, or at least soon, so I follow the path of least resistance with this type of software.
  • by lymond01 ( 314120 ) on Wednesday May 14, 2008 @06:02PM (#23410616)
    I think some people not familiar with the CMS idea think that using a CMS makes life easier for the developer, not just the client.

    Using Plone as an example, I can put up a simple, templated website allowing authenticated updating and commenting in about 5 minutes. If the user wants me to add a form that stores data into a centralized SQL database, there are ways to do that but it'll require extra packages, a modicum of python knowledge, and some knowledge of Zope's TAL scripting.

    So sure Plone makes things a little easier, and the better the developer is with Zope/Plone/Python, the easier it is. But developing a moderately-featured site with Plone isn't much easier than it is by hand if you're new to the underpinings.

    But when the site development is done and it's time to add content, the web programmer can finally just walk away and let the users handle that part, and that's where a CMS shines, and that's why you'd want to use one.

    So don't think a CMS is a "quickstart" solution for a moderately complex site. It's only quick once you're done learning the CMS ins and outs, which may include a new programming language. But programming a few applications and custom pages is much less work than writing a standards-compliant, form-secured, completely-user-updateable website from scratch, I'd think...
  • by iamwahoo2 ( 594922 ) on Wednesday May 14, 2008 @06:26PM (#23410928)
    I respectfully disagree. I have done a fair amount of programmin but not a web programming. I found setting up Joomla to be a breeze in comparison to what it would have taken to build my own site of similar aesthetic appeal. When it comes to administration of the content, I find it no more difficult than something like MS Sharepoint which is used around my workplace by many non-geeks.
  • by hagengraf ( 1289984 ) on Thursday May 15, 2008 @03:56PM (#23423460)
    It is my first comment on slashdot so be patient with me.
    At first: Thank you for the review. I am proud to reach 7 of 10 points :-)
    Concerning the German things:
    The book is a translation of a German book I wrote in November/December 2007.
    It is translated into French, Dutch and as you have seen ... in English. I was talking with all the publishers and ask them whether it is possible to free the content. The German and the French book are now available on-line completely for free.
    http://joomla.cocoate.com/de/joomla-15 [cocoate.com]
    http://joomla.cocoate.com/fr/joomla-15-fr [cocoate.com]

    I want to use this opportunity to ask you for two favors.
    1. Please help me to convince other publishers to free the content of the Joomla! book by writing a comment here at slashdot or (may be better) at the books website
    2. At the moment I talk to various people who wants to help me, to translate the online content into other languages (turkish, spanish, ...). If you have time to translate something in another language, send me an email.

    I hope you enjoy the book (even if the German touch is strange) and again, thank you for the review.

Do not underestimate the value of print statements for debugging.