Do more with core!
Joomla! core is just that - a core. The great thing about Joomla! is that you can extend the core to suit your specific needs. There are thousands and thousands of extensions available for Joomla!, all adding something new to your website.
But let's stop there and instead look at what the Joomla! core itself offers. In essence, it is a CMS, or Content Management System, and this is what we'll focus on here. Joomla! gives you the possibility to store content in articles, and categorize these articles into categories. You can then show this content on a web page in a couple of different ways, mostly by single articles or as a blog.
This is all good, but many times, a website needs to be a lot more than some “static” pages and a blog. There may be a need for relationships between related content or a need for more complex layouts than what the single articles and blogs offers. This can often be remedied using modules and at times manual labour.
Connecting content with relationships
Let's address the issue of relationships first. This is an issue that often has been solved using some sort of CCK, or Content Construction Kit. These are extensions that basically offers ways to create custom content types for which you can add any type of relationships you want. This can be great and solve very complex problems, but it may also be a very large hammer to use on a very small nail, meaning it comes with a major drawback: Your content will no longer be stored in Joomla! as articles. The reason this is such a drawback is that you effectively lock yourself into sticking with your chosen CCK, as getting the content out of it often requires too much work. If you made a well informed choice, this is all fine, but for others it can prove costly. As needs change, being locked into an extension can add unnecessary constraints to the possibilities Joomla! offers.
The love for tags
We have found that a lot of times, Joomla!s tag feature will do the trick in providing those extra relationships you might need for the core content. Wait, tags as in topics for a blog post? you may wonder. Yes, exactly! But that is only one type of relationship, and why let that default use of tags limit you? What tags really provide is the possibility to have many-to-many relationships apart from the one-to-many relationship categories offer.
In practice, what we do is we nest tags into two tiers and use the first tier to categorize the tags into different uses. We keep one of these as regular blog topics and customize the template to only show tags nested under that tier one topic tag. Another use can be to add a target functionality to articles, where we utilise the Tags Assignment feature in the third party extension Advanced Module Manager from Regular Labs, to show specific modules next to specific articles. This makes it possible for a content writer to add related content to a blog post from within the article interface! In this case, the third party extension we use helps us do more with core, as it only removes (a lot of) manual labour. All content is still stored in the Joomla! core.
Displaying related articles
OK, so we can solve the relationships for our content using nothing but Joomla! core, but there is one major thing missing. Joomla! lacks good, extensive options for placing core content, articles, in modules. Why would you need that? you might ask. The answer is simple; to keep all content in articles where it belongs. There is a design principle stating the benefits of this approach.
Also, being able to display articles in modules is sort of necessary to be able to make use of those relationships you just created for your articles. What good is a relationship if you can’t use it to connect the related content to one another? There should be some more module options available for tags, and unfortunately the modules available in core are not very flexible. What if there was an extension, a module, that could select articles based on tags..?