The Outsider’s Guide to Joomla 1.5, Part 1

I found myself in an unusual situation recently. I’ve got 12 years of Web development under my belt — everything from markup to operating systems, javascript to Apache, switches to fileservers, PHP to load balancers. But I found myself challenged by technology that thousands use every day. An off-the-shelf open source CMS: Joomla (version 1.5).

It’s really not that hard, but I’m the type of person that has to understand the model behind the system. I want to know how the system is organizing the content — moreover, how the authors envisioned the organization of the content. A CMS author always starts with a specific model in mind, and everything in the system will reflect the assumptions that are made around that model.

Once you get the model, everything falls in line — you know what you can and cannot change, what will be a simple configuration option and what will require hours of coding, and at some point, you can actually look at a web page rendered by the CMS and know how to modify any element on the page. After installing Joomla and the sample site that is packaged with it, I was bewildered by the array of content I saw in front of me and how I might be able to add/remove/edit the various elements.

So I wanted to share with others some of the basic lessons I learned during this process. There are some resources that are pretty good, like the QuickStart Guide. But I urge you to read this article before you even read the QuickStart guide.

Page? What’s That?

I think one of the hardest things for me to get used to in Joomla was the fact that there’s no such thing as a “page” in Joomla. Imagine a site with 5 main pages: News, Weather, Sports, Traffic, and About. In Joomla, those are not 5 pages. Instead, they are 5 items in a menu.

Each menu item is configurable. When you’re configuring a menu item, you’re actually configuring the page that is presented when you click on the link in the menu. I take a little exception with this model — I find it non-intuitive, and it’s hard to explain to novice users who might be managing the content on your site. When I first tried writing an e-mail to a user about the site structure, I tried to write “…and this menu item has the news articles…” and it sounded so ridiculous that I ended up prefacing the message with “when I say ‘pages’, I really mean ‘menu items’, but it’s just too awkward”.

So as you build your site, you’re starting with the menus. Now I do like this approach — you’re focusing on structure first. I think good site design starts with good organization of information. But it would make more sense if they modeled the pages and had the menu items point to specific pages. Of course, that would be more clicks, but it might be explicit enough to make more sense to users.

Content Organization

Content is organized into sections, which are subdivided into categories. I find it a little arbitrary to limit the system to a two-level hierarchy of information, and then to further complicate the system by using two unrelated terms to describe the levels of the hierarchy. I don’t think in English there’s any subordinate relationship between the term “section” and “category”. But once I understood this, I could move past it.

I found that you have to file your articles under a category. I tried to make a simple site that had a very flat organization — only sections, no categories. Joomla didn’t like this; when I filed an article, it required that I put it into a category. So if you want a really simple site organization, you might create one section with a number of categories under it.

Also note that web links use a different taxonomy of categories than articles, so you’ll have to set those categories up before you start to file web links. Not a big deal, and I’m sure the authors have their reasons, but this is just one of those little issues that get in the way for a bit.

Just One Thing

Joomla’s content model makes it really easy to do things like build a page to display a list of articles (just configure a menu item to list all articles from a given section or a given category). Nifty. But how do you just make a page – you know, just a page, like the “Contact” page on a typical corporate site? As best I can tell, you have to put the content into an article and then configure the menu item to display that article. Obviously, it’s not that hard, but it’s also not intuitive.

Once you’ve defined that article, you can put pretty much anything you want into it — all sorts of text formatting, embedded images, hyperlinks. None of that is under the control of the CMS, which is good and bad. Good, because it’s extremely flexible. Bad for the administrator who wants to have some oversight of the content being created on the site. But if you’re the administrator and the content creator, this is the flexibility you want and need.

More to come in part two of this article.

Leave a Reply

Your email address will not be published. Required fields are marked *