Building Websites with Joomla! 1.5.x

Article Index
Building Websites with Joomla! 1.5.x
Building The Site
Essential Extensions
Other Extensions
Conclusion
All Pages

Introduction

When I decided to publish my Engineering wisdom on the internet, and later to set up a website for my Personal Development business, I knew that I would need a Content Management System (CMS) to do the job properly. Although I was an experienced Embedded Systems Engineer in a past life, I hadn't ever done any serious web publishing before so I had no idea where to start and expected there would be quite a learning curve. I ended up using Joomla!, which has done the job quite nicely. This article describes what I learned along the way, including some tips to save you time setting up a website of your own.

My Requirements

I started off as all good Engineers do, by defining my requirements. And while I was doing that, I started playing around with some different CMS's to see which ones had the best chance of meeting them. The requirements for the CMS were all based on the features that I wanted the site to support, which were as follows:

  • Publish an existing base of content involving mostly text, with some pictures.

  • Allow addition of new content items in the future as inspiration to write them hit.

  • Good Search Engine Optimisation (SEO) with Search Engine Friendly (SEF) URLs.

  • Ability to hyperlink between content items easily.

  • An automatic newsletter containing new content.

  • A random content choice on the home page, so it's always “fresh”.

  • The site should be automated and look after itself when I'm not around.

  • The CMS should be free (or at least cheap) and preferably open-source.

Picking A CMS

Surveying the CMS scene, I first came across Mambo, which I played with for a while. It looked up to the job, but while investigating it I learned that there had been a schism in the Mambo development team which had led to the creation of Joomla! from the same codebase. I concluded that Mambo was a dead-end and started looking at Joomla! instead. I'd also heard that Wordpress was popular but more blog-oriented; and I wanted to create an information base rather than a blog.

I spent several weeks exploring Joomla! to work out exactly how to get it to do what I wanted. Things were looking pretty good, but I also heard good things on the 'net about Drupal, and I decided I should at least look at it as well. Drupal looked cool, but I concluded that Joomla! was more popular. I was pretty much convinced that either one could do the job, but by then I had grown tired of evaluating and actually wanted to begin implementing something, so I never really learned enough about Drupal to offer a fair comparison. It's only when you actually build a complex site with a CMS that you get to learn about the more subtle nuances that get glossed over in comparison tables, yet can make a big difference to how hard or easy it is to implement the features that you want.

Version 1.0 or 1.5?

There are currently two supported branches of Joomla!: 1.0, and 1.5. Version 1.0 is still supported because it is very widely used. Version 1.5 hasn't been around as long, but I took a punt on it being stable enough for a production site, and that punt paid off. The drawback with setting up a new site on version 1.0 is that migrating to 1.5 later will be painful, while the drawback with setting up a site on 1.5 is that releases due to undiscovered security problems are more frequent so it involves slightly more maintenance. Also, not all extensions are available for 1.5 yet. It is possible to use extensions from 1.0 with 1.5 via the legacy plugin, but the word on the streets seemed to be that this should be avoided if at all possible. I was able to find extensions which worked natively with 1.5 for all the functionality I required.

There was a security issue with 1.5.5 which caused some sites to get hacked, and led to a rapid release of 1.5.6. A month later, 1.5.7 came along. Another couple of months later, another security issue led to 1.5.8. And two months later, yet another security issue led to 1.5.9. There's probably a later one by the time you read this. I'm hoping the need for security releases is just a blip on the radar. Nevertheless, if you're setting up a new site and want to stay current, I reckon you'd be crazy to use 1.0.X. Go with the latest 1.5.X version.

Strengths of Joomla!

For my requirements, Joomla!s pros outweighed the cons. I wouldn't expect a much shorter learning curve with anything else given the same requirements, and I didn't know of any off-the-shelf solution would require some customisation to meet my needs.

Joomla! strengths as far as I was concerned were as follows:

  • It met my requirements. This was obviously hugely important.

  • It is actively maintained.

  • Huge user-base with active support forums.

  • Well supported by hosting providers.

  • I could worry about look-and-feel later, just by switching templates.

  • It has an extensive extensions library which is actively maintained.

Core Functionality

On the down side, the core functionality of Joomla! just isn't enough to build a practical modern-day website. For instance, its Search-Engine-Friendliness isn't sufficient if you want your site to rank well; and in my opinion, there's little point to having a site, if you don't. Fortunately the extensions library includes a vast array of additional functionality. Conventional wisdom is that you should utilize the core functionality before diving into the extensions library, but there are some extensions I consider essential functionality for any web site which I believe would be better as part of the core.

Extension functionality tends to lead core functionality over time. I suspect Joomla! may be a victim of its own success in this respect; mass acceptance means the developers must be very careful about things like backwards compatibility. Integrating significant functionality from even the most popular extensions into the core could break some people's sites when they upgrade. Some extensions are better written than others; some fit nicely into the Joomla! architecture, while others are a hack. It's easy for an extension author to publish an update, whereas a core release is a team effort requiring lots of regression testing, translations, and a certain amount of administrative overhead. So it's understandable that the functionality in the extensions is ahead of where the core is at.

Some core features just don't work the way I would expect them to; but perhaps that's just me. For instance, the default home page layout is a blog style where articles appear ordered left-to-right; while the style for blog displays of articles grouped by section or category is ordered top-to-bottom. Other people complain about this on the forum with workarounds available and it's logged as a bug, but the core still handles it inconsistently. Putting workarounds in place for inconsistencies like this wastes time that could otherwise be spent developing your site content.

The Section/Category/Content Model

Joomla! enforces a strict two-level content hierarchy. You can structure your menus any way you want, but the content database is partitioned into Sections, which contain Categories, which contain your content like this:

Section

Category

Articles

I found that my content fit nicely into a two-level hierarchy, with only the occasional exception. But it's the exceptions which are hard to deal with. If my site was significantly more complex such that a three-level hierarchy was necessary, I have no idea how I could have done this with Joomla!

I believe this is the single biggest differentiating factor between Joomla! and Drupal. There are many little ways in which they work differently, but this restriction is built deep into the architecture of Joomla!, while in Drupal, everything is a node in a tree with whatever structure you like. This wasn't a big enough deal for my site to motivate me to learn the intricacies of Drupal once I'd already spent 2 months learning how to get Joomla! to do what I needed though.

Another drawback of the article categorization model in Joomla! is that each article can only occur in a single Section+Category pair. I could not easily, for example, publish a single article on Requirements Tracking in both my System-Engineering/Requirements and Software-Engineering/Requirements categories without duplicating the content or having one of the articles be just a pointer to the other. Neither of these solutions are particularly Search-Engine-Friendly.

Templates

The look and feel of a Joomla! site is dictated by the use of a template. One of the benefits of Joomla!'s popularity is the vast number of templates available on the internet, either for free or relatively cheaply on a pay-per-download basis. Switching templates to change the way your site looks is relatively trivial, although not all templates are of equal quality and they don't all support exactly the same module positions. So sometimes you need to adjust your modules or elements of your site may disappear.

There are two main classes of templates: fixed width or variable width. A variable width template allows the user to resize their browser window and have the elements on the site adjust themselves elastically to optimise the use of screen real-estate. The text in your content reflows to fit automatically. A fixed width template, on the other hand, is designed for a specific window size and works optimally only on a specific screen resolution. Not everyone has the same screen resolution and browser size, so a fixed width template forces some users to scroll to get access to information that they might otherwise be able to see if the content filled the available window. Whether you prefer fixed width or variable width templates is ultimately a matter of personal preference. Designers prefer fixed width because it gives them more control. But visitors like me prefer variable width because they can set their window size to suit whatever else is on their screens.

Call me choosy, but despite the vast array of templates available for Joomla!, I had trouble finding one that I liked. Part of the problem was that most templates are fixed-width, whereas I wanted a variable-width one. Many of the templates had too much screen real-estate devoted to funky graphics of the template itself, and too little devoted to the actual content. My site was intended to be content-rich, so I wanted the template to focus the visitor's attention on the content, not on the pretty graphics of the template. I tried starting from scratch developing a text-only template of my own, but this proved an enormously difficult task given that I had to learn PHP, CSS and the Joomla! template design rules all at the same time. Time I spent doing this was time I wasn't using to develop the content of my site, which was what I was wanting to focus on. I ended up giving up and found a variable-width template that I liked sufficiently to start hacking it into what I really wanted. But it was heavy going for a CSS novice like me, and I was always bothered by a large to-do list of things about it I wasn't really happy with.

I slowly came to realise why designers prefer fixed-width templates. The more complex my site became the more I felt like switching to a fixed-width template just so I could avoid all the unexpected gotchas that I encountered when resizing the browser window. Fixed-width templates are so much easier implement and test, because you only have to worry about one window size. Having everything adjust elastically in the face of multiple module elements with varying content is hard. My site ended up with several module elements on each page, and getting them all to co-operate in window size changes was much more difficult than I expected. Often I would make a change and things would look great, then I'd resize and find modules overlapping each other, or content jumping down the page, or embedded diagrams no longer in the right place. The idea that CSS gives the flexibility to allow objects to float and for text to flow around them sounds great in theory. But in practice when the XHTML for different page elements is coming from different modules which don't know about each other or about the structure of the template, getting this to work for different browser sizes is hard work.

There's no easy way to determine the quality of a template unless you're familiar with the template design rules and know what to look for. The important thing is that it works correctly with all the modules and extensions that you want to use. The more obscure the layout you want on your site, the more likely you are to need to tweak the template.

Search Engine Optimisation

I wanted my site to rank well on search engines, without me having to pay for advertisements. The main things I wanted were for the URLs on my site to include keywords such as the Section, Category, and Title of the article. Keyword-stuffing has rendered keyword meta-data of little use, but some search engines will still find keywords if they're actually in the URL itself. Unfortunately this makes my URLs rather long. I doubt that any serious search engine really still baulks at URLs containing database queries, but I wanted my URLs to be human-readable so they are better for other sites to reference and bookmark. Sadly, Joomla!s search engine optimisation isn't great out-of-the-box, which is why I recommend the sh404SEF extension below.

The other important thing was to set the description metadata for each article, because this is what search engines like Google display in their search results as the summary of your article. An article in Google's webmaster help elaborates on how this makes your site look more worth visiting when the user sees it in the search results. Each of my articles begins with a two-or-three-line summary before the Read More marker, and ultimately I found the easiest way to set the description metadata was to copy this summary from the article. Ideally, I'd love Joomla! (or an extension) to do this automatically for any article without an explicit metadata description.

A shortcoming of description metadata handling in Joomla! is that while articles can have descriptions, Section and Category tables cannot. The sh404SEF extension allows arbitrary metadata which works around this problem, but the trouble then is keeping the sh404SEF metadata up to date as new Sections and Categories are added. I'd love to see this deficiency addressed in the Joomla! core. Google has a tool to warn about missing or inadequate descriptions in their webmaster tools, which is definitely worth checking out, as is the Missing Metadata extension described below.



319 Votes

29 Comments

Feed
  1. I absolutely agreed that it is crazy not to be able to put a story under more than one category. I also think it is crazy to stop lists at 50. I have many times more content than this on my site and can't find a way to make it easily available to subscribers.
    I have yet to work out how to make the archive work properly.
    Joomla is OK as far as it goes, but it has massive limitations.:-(
  2. I absolutely agree that it is crazy to only be able to put storie in one category, and it is equally stupid to stop lists at 50. Joomla has massive limitations.
  3. Vemod News Mailer extension isn't in the JED anymore. The link is broken.
  4. The author of Vemod has discontinued support for it, and handed the baton to another group. It does appear to have disappeared from the JED, but it's still available from his home site.
  5. i am doing one website using joomla. i have to provide in one page some details of each option, so i have to use multi read more options in my article. how is it possiable.
  6. Very nice and informative.
    Cheers,
    Sandy
  7. Thank you for this article. It is very helpful.
  8. Tremendous article.
    this would really help that novice Joomla user.
    best wishes.
  9. Thank you for the overview upside / downside. :-)
  10. Thanks for writing this short overview. I have started using Joomla. The reason for me was that it offers so much options i cant find in any other cms.
  11. I'm a tech idiot, so reading this was a big help. I'll refer back to it when I start building my site. Thanks. :-D
  12. Thanks! The more I learn about Joomla... the more I like it.:)
  13. Liked the article and thanks for taking the time. I am very new, yet have spent weeks and weeks, sometimes 10 hours a day learning Joomla! and am amazed at the limitations.

    I am unable to understand why, with so many 000s of people working on it, it is still so complicated - everywhere I go on the forums people are saying they spent 3 hours, 4/5 hours trying to get soemething to work - crazy! but understandable - Dreamweaver is a breeze by comparison.

    Even a Guru has declared something he thought was not visible was in fact on his front page - what chance the new guy!

    On with the struggle and hope somebody makes a button to do the job - why can't a similar arrangement to Dreamweaver be done.

    Looking forward to getting enthusiastic about it all - but when!
  14. Thank you, thank you, thank you, for your article. I need to publish a simple ecommerce website quickly. I can go back and make it more complicated later. It appears that Joomla is not my solution. Joomla now seems to be hyped by a tech-rich community. Nothing against them, but Joomla is not really for beginners. The 1.5 Quickstart pdf is confusing. I can see now that it makes assumptions about my level of knowledge. I have been trying to understand the hierachy of Joomla, and your explanation of the limitation of 2 levels, was enlightening. I am not a novice, but I was hoping a CMS would allow me to get my site up quickly. Not so. We need more articles like this one, that point out the limitations of products.
  15. P.S. I am still going to come back to Joomla and learn it, as it still sounds promising, but there really is quite a learning curve to it. If only there was a mini-Joomla, or a Joomla, Jr., or a Joomla Lite, with more basic website building tools, that would let a beginner get a website going quicker, but also encourage him to grow into Joomla the Big.
  16. its a great site to see
  17. Hi there,
    I have stoped by first time this site and it is really good and informative. joomla.org seem to be very user friendly. I am planning to update some of my websites. here I found lot of templates available. and that sound good for me.
    thanks a lot for sharing this useful info with us
  18. Hello, I'm new to Joomla anyone know a good calendar to install? I installed the Google calendar but it doesn't have text wrap so my words are cut off and any good flash that I can put on my header of my website?
  19. Thanks for this, I will be using Joomla for my next project..;-)
    Dhamphy's Online Journal
  20. i see a lot of people use joomla and get a lot of things for free,
    please can anyone give me a hint on how to get a free easy to use web design templates.

    i am a total novice on this.
    thanks
    george [nigeria]
  21. yates

    Ei..Thanks you, for your article. I need to publish a simple ecommerce website quickly.
  22. Thanks to this article, my client has chose Joomla CMS for his site!

    Thank you Graham!
  23. Nice article! Thank you!
  24. Thanks for this post and this information but a think Joomla it has massive limitations.
  25. Great article!

    A lot of the commentators here are quite vocal about Joomla's limitations. Joomla has definitely got some limitations but so have all the other top CMS's like Wordpress, Drupal, Expression Engine, etc.

    Web development is a profession. If you have no or little experience developing a site, you will find it difficult and get frustrated by these "limitations".

    I just completed a 900 page Joomla website with unlimited depth of categories, access control restricting editing rights of admins to specified categories, multiple newsletter lists, event calendars and full SEF URL's.

    The entire site is updated, including events and sending newsletters via the front end. Approximately 20 people across Australia manage content for their particular area and only two people in the organisation have back end access.

    The company invested 6 figures in the development of the site which included a lengthy internal assessment of the best CMS to fit their needs. Joomla won despite it's "limitations".

    Joomla is a world class product and it's getting better with every release.
  26. Excellent article - thanks so much. I'm new to Joomla, and will be setting up a Joomla site for a small company in the next few weeks, and will definitely be following your advice.

    Cheers!
  27. Kudos!!!
    As someone who has also learned Joomla the hard way, I wish to thank the author for a well written and extremely informative article. Joomla has a few limitations, to be sure, but for the price, it sure is hard to beat. I really like it, and like its backend and easy edit nature. Even an intelligent novice with minimal html skills can be instructed to maintain a site once it is up.
  28. I cant find out how to make my site here...if anyone want to help me, my e-mail is lenja_baba@yahoo.com so e-mail me.

    Thanks, Milica, Serbia
  29. for basic tutorials, go to siteground.com. They have the best and most compreshensive tutorials on basic stuff

Add Comment


    • >:o
    • :-[
    • :'(
    • :-(
    • :-D
    • :-*
    • :-)
    • :P
    • :\
    • 8-)
    • ;-)