Joomla! Love it or hate it, it doesn't seem to be going anywhere any time soon. In more ways than one. Read about my experience with the platform over the past few months.

CMS’s are plentiful these days; so usually when a project comes into the studio, it’s a nice job rekindling with code you may not have worked with in recent months. When a Joomla project came to us a few months ago, we only had our past experiences to judge how it would go. Safe to say, we were all a tiny bit dubious.

Joomla is like marmite. You either love it, or you avoid it at all costs. From personal experience? I usually avoid it like the plague. So, the studio was kind enough to let me work on fixing up the project which was in need of a revamp.

Straight away, it was an absolute nightmare. Plugins, Extensions, Modules, all named by a past developer, names which had no meaning to us. There were hundreds - some that were now redundant, some which were dependant on others, so they had to stay, and some which actually just made no sense to be installed. Overall, there were only around 5 which were actually needed, but even those 5 needed training on how to use them.

Removing the wash of old plugins actually sped up the site somewhat, which then allowed us to delve into the code structure to start updating and the adding new pages.

See Also: Enhancing Our Cms Performance with a Content Delivery Network

Nowhere in the Joomla documentation did it express just how long winded it would be to create a new theme for Joomla, never mind tweaks and updates to an existing one. To me, there is just no logic.

Not to compare too much, but to add a new page on Wordpress (which I know is mainly a blogging CMS - but it is evolving after every major update!), you add a new page, and assign it a template. In Joomla, well – I’m still finding the correct way to make this as streamlined as possible.

First, you create an Article. Then, you assign this article to a Menu Item which makes it appear in whatever menu you have selected. Bear in mind, to actually show a menu on a page, you need to include it on the template - which involves first creating a Menu Module, and then assigning your menu to this, and then giving it a Position. E.g:

<jdoc:include type="modules" name="menu" />

This, is just to add an empty page and make it show up!

Straight away, I wasn’t a fan of Joomla. What should be a couple of clicks turned into a manhunt trying to find where to click in the Joomla back end to actually make this simple empty page (article) appear on my site. It became increasingly obvious that there are no simple, decent guides on making or updating a Joomla template, and Joomla’s own knowledge base is frightening to say the least.

One thing that also became apparent is the lack of free, open source plugins, extensions and modules available to users to allow them to create the most basic of actions. Again, I may be bias as I am so used to our company's bespoke CMS where we write our own scripts and understand the partnership between functions. Or Wordpress, where the plugin and function community is vast, and the majority are free or available to trial with paid updates.

One Extension that stood out above all else with Joomla was MetaMod. - This was our saving grace; allowing us full control over where our modules would be displayed. It acts as a wrapper around modules, and allows modules within a module - which is perfect if you are doing custom templates where you need full control over positioning.

MetaMod allows for custom PHP scripts - which is something we used again and again. A sample of PHP used here would be:

$app = JFactory::getApplication();
$path = JPATH_BASE.'/templates/'.$app->getTemplate().'/';

This allowed us to link the module to a template page we had created in the back end, and make the site increasingly dynamic.

Another issue that arose with working with Joomla was the amount of major upgrades that are pushed out, which breaks a lot of extensions. Migrating from older versions is not an easy task, either, especially when you have a complex setup (or any setup if you’re not too familiar with the Joomla build).

Overall, Joomla just seems too complex for what it is. The structure is not well documented, the UI is far from intuitive and it has you running around in circles to do the simplest of tasks. I live in the luxury of having some great developers on board who have produced a simple, bespoke and enjoyable to use CMS which is fun to build on, and doesn’t rely on a quiet, inactive community of people who seem to loathe the software as much as I do.

See Also: PHP 7 in Practice: Practical Uses for the New PHP 7 Features

For anyone considering on using Joomla for your next build, think hard on it. If you have never used it, or have used it in the past, you will be spending a fair amount of time just learning the ropes again, as the logics behind how to use it don’t seem to fall naturally.

I completely agree that any developer should be aware, fluent and knowledgeable of as many CMS platforms, frameworks and softwares as possible to increase your understandings and keep up to date with modern day technologies. So regardless of my time spent attacking Joomla with all that I had, I’m kind of glad that I have had such an experience, as now next time a Joomla project comes into the studio, I can either grasp it with all the enthusiasm I have, or pass it along to another unsuspecting victim (developer) in the office.

These opinions are of course, my own. But what do you think of Joomla? Let us know on Twitter @madebymagnitude!