Joomla! 3.7 Custom Fields and why we’ll stick to a CCK
by Agata Urbaniak
While we do our best to be CMS-agnostic, we obviously have our favourite platforms, the two in particular being Joomla and WordPress. They are both extremely capable and the choice between them usually boils down to client preference – which one they already have experience with, and often which one their current site is based on, even if we’re rebuilding it from the ground up.
Vanilla (core of the CMS and default extensions only) Joomla isn’t really usable out-of-the-box even for simple projects if you want to provide the client with a user-friendly interface and spare them fiddling with resizing/cropping images and touching code. What is offered by default is a title field, main body text, intro and full article image, single main category, and all the usual stuff like author and publishing dates. This is very limiting in terms of how you can lay out these elements in an elegant and eye-catching way. What if you need a slideshow or a table of downloadable documents?
This is where CCKs come in
CCK stands for Content Construction Kit and is a means of adding custom fields to Joomla. But it can also be so much more, allowing for building a highly-customised system of content types and templates as well as a powerful search and filtering. You end up with a product tailored to the client’s requirements, without the need for hacks, workarounds, or cumbersome (over)use of modules.
I started work at Wild Dog Design 2.5 years ago and introduced Flexicontent into the company’s Joomla workflow. I was already familiar with it, having worked with it for 2-3 years prior, and knew it met my two core requirements – it was under constant active development and it had quality support. There’s nothing worse than basing your entire project on a piece of software that gets abandoned at some point.
Flexicontent is on the brink of releasing a Pro version of their software just as Joomla is on the brink of introducing custom fields into their stable release. I guess the Flexi devs aren’t afraid of their product becoming obsolete, and neither am I. Admittedly, I haven’t tested DPFields, the extension that is going to be incorporated into the core to allow for custom field creation, however from what I read about it, Flexicontent seems to be a much more mature product, and by far a lot more feature-rich. It surprises me that the Joomla devs decided to use an extension that hasn’t even been around for 2 years and which has no ratings/reviews in the official Joomla Extensions Directory (JED).
Content types, fields, categories, and templates are the base for your tailored Flexicontent/Joomla website. Each content type is tied automatically to a template, which consists of a category and item view. That setting can be overridden for both the item and the category view in case you needed to load a different template than the one configured as default for the particular type. Fields are assigned to the content types but they can be assigned to as many content types as you need, allowing them to be reusable across the platform, a feature often missing in other CCKs. Additionally, a content type can limit the category branch allowed for items assigned to that type making life easier for content editors.
The result for the end-user (client) is, once you pick the correct content type, you only get the relevant fields to fill in, the applicable category branch to choose from (or even just a single default category), and the automatic template assignment. This sort of setup ensures minimum margin for error.
Furthermore, all image fields are configured to output an image with correct dimensions. The same image can be reused across the site because once uploaded via a particular field, it can then be selected in another article featuring the same field. It also gets stored in 3 different sizes to fit different placements (for example large size can be used for a hero, small for a thumbnail within a listing and medium for social media sharing).
The various fields can be set to be searchable/filterable or not. There is a search index in place to make the search mechanism faster and more efficient. ACL (Access Control List) can be configured per content type or category. All this gets configured by the developer and it’s nothing that the client needs to worry about later, it just runs seamlessly.
Alongside developing Joomla websites, I’ve also done my fair share of client training over the years and observed closely what end-users struggle with or what they find confusing and try to minimise it in each new project. I mentioned the overuse of modules earlier. I believe the client shouldn’t be required to touch modules at all, only what’s loading in them (contents and menu items). It’s a mistake to make a slideshow be a module as it leads to fragmenting the content creation workflow. You create a piece of contents, save it and then have to go to modules to create that missing bit of the article. It’s both confusing and completely unnecessary. Creating an article should be done from start to finish within the edit form of that article, with the exception of creating related articles if such articles are necessary.
Additionally, being in charge of our MOTs (Wild Dog’s monthly Joomla maintenance/upgrade service), I can clearly see how much easier it is to upgrade websites that, instead of running multiple extensions for various purposes, have one powerhorse like Flexicontent to manage all its contents. It’s true that you should always use a tool that fits the purpose but just because you have a few documents for download or pages requiring an image gallery, doesn’t mean you need a full-fledged documents manager or gallery component. It’s often better to consolidate all contents under one umbrella, makes it easier to maintain both for content editors and for the IT team doing upgrades and further development.
Having clients move from Joomla’s default content component, overloaded with modules they need to create, fiddly content templates they have to load within the text editor, multiple different third-party components fitting the various types of functionality over to Flexicontent has been met with relief and praise of its ease of use. It will take a while for Joomla’s custom fields to catch up to it. Afterall, Flexicontent has been around since 2009 and its developers have been paying close attention to user feedback and feature requests. You can’t just jump on the wagon and expect to deliver this sort of functionality in a few months.