By Crystal Dionysopoulos on Wednesday, 20 July 2022
Category: July

Do you need another front end extension? Let's find out.

Starting a new project with Joomla can sometimes be a little bit like writing a new article. I find myself staring at the blank page, overwhelmed by all the possibilities and different ways to acheive the same goals.

With Joomla, some of the most impactful decisions you can make are on which front-end extensions to install. Many of us have a short list of go-to extensions, but what if we need to do something new?

Joomla 4 brings many new possibilities into the core with custom fields and subforms, but it may not always be the right choice for all projects. So how do you decide?

Before we start, let's define some terms:

Joomla Core
The extensions (including components and plugins) that are installed with Joomla. For example, Articles (com_content) is a core extension.
Joomla Extensions Directory (JED)
A community directory of third-party extensions (including components and plugins) that extend the capabilities of the Joomla core. The directory includes extensions built for many different versions of Joomla, so make sure you filter the results by your Joomla version and check server compatibility before trying to install an extension on your Joomla site.
Custom Fields
A new core feature of Joomla in Joomla 3 and 4, which allows you to create your own fields to add to the edit form in supported components. By default, the core content (articles and categories) and contact extensions support custom fields. Some third party extensions may support Joomla custom fields as well; others implement their own custom fields capabilities which may work differently.
View Template Overrides, Layout Overrides, Alternate Layouts
A way to customize the way content is displayed and structured on the front end. For example, by creating an alternate module layout as detailed by Marc Dechèvre.

It all starts with a plan.

For me, I start with strategy. Like a good article outline, a strategy helps you know the structure of what you will be building, and sets reasonable boundaries which helps you make decisions. If you already have a solid strategy for this build, skip ahead to the infographic, otherwise continue reading for some pointers.

Define your use case.

Ask yourself: who is the audience for this site? What are they trying to do with this particular content or feature? Personas may help you define the audience more clearly. Don't forget to account for the people who will be managing the site, too. I build sites very differently when it's just for me versus when I know one or more people on the client side will be managing content.

Sometimes there are instances where using custom fields or view template overrides would get the site looking right, but make it too complex to manage long-term. In these cases, sometimes finding a 3rd party extension is best because it makes it easier to keep the site up-to-date.

As an example, I recently had a project where I had two different places that needed to have custom interactive vector maps. In one of them, it was really just a way to organize pages by a geographical region, and these pages weren't likely to change much. Instead of installing a whole extension just to display them that way, I developed a custom category template with tags and custom fields to display the articles the way we needed. 

The other map was more complicated, and needed to allow people to submit information on the front end. My client also needed to easily manage the submissions in the back end on an almost daily basis. While I absolutely could have done this with custom fields, it would be needlessly complex to manage. So, we used a component instead.

These two examples are pretty extreme, but it just goes to show that you can have situations with similar content for the same client and same audience with completely different needs.

What kind of content will you be showing?

If it's mostly text-based (or simple media) and unique for every page, a custom field may be all you need. You can create text fields, media fields, dropdowns, even radio buttons or checkboxes as custom fields in Joomla. For more complex information, you can create subforms with mutliple fields, and repeat the same structure. There are also third-party custom field plugins with even more options if custom fields work for you but you need a slightly different kind of content. This is usually a little lighter than installing a full component.

However, if you want to pull in content from another part of Joomla (for example, to get information from another article) and there's not an easy way to do it yourself via a module, you may need to seek out a plugin or extension. This also applies if you want to pull in information from another site or app. Developers can hook into an API, but at that point you may as well install an extension anyway (if one is available).

Assess your skill and comfort level, as well as those managing the site.

Just because someone else feels comfortable creating a custom component for a site doesn't mean that's going to be the best solution for everyone always. (I can't do that, either!) I am fine sticking code in the editor to make accordions, but that doesn't mean it's a good solution. In many cases, a plugin might be a better choice. And that's just fine.

Like I said at the beginning, there are many different ways to approach building a site with Joomla. As long as it's accessible, usable, secure, and easy to manage for the people doing the managing, there's no wrong way about it. The extensions directory is full of amazing tools to help you build a great Joomla site at any level, and is another reason that Joomla is such a flexible and powerful CMS. Don't be afraid to take advantage of it if you need to!

Quick-Reference Infographic

Feel free to download and share the infographic below. Just make sure you link back to this article so anyone who wants more information can get some context!

A note about overrides:

There are a few places I mention view template overrides or layout overrides. These are core-supported ways to customize the front end display of content, provided you manage the overrides in the template or child template. Do not change Joomla's core files (in the components or layouts folder, for example) as your changes will be overridden when you update Joomla. This also goes for third party extensions—follow their documentation with layout overrides, otherwise your changes may be overridden when you update the extension.

Some templates provide their own alternative layouts; for other things, you may have to create your own. This requires some knowledge of HTML and PHP. If that's not something you're comfortable doing, that is okay! The infographic is meant as a general guideline and to help bring awareness to the many amazing things the Joomla core can do.  

View larger

{slider title="Text Version" open="false"}

The text version is organized as a nested ordered list.

What do you want to do?

  1. Add some user interaction.
    1. Is it only visual interaction, like tabs or an accordion?
      1. Yes
        1. Check out view template overrides and alternative layouts! Use the core.
      2. No, it's more complicated, like a shopping cart, calendar, booking form, etc...
        1. Did you check to make sure it's not available in core?
          1. Yes
            1. Find a reliable extension on the JED.
          2. No.
            1. Check if it's in core!
  2. Display content.
    1. What kind of content?
      1. Articles, informational pages, blog posts...
      2. People, locations
      3. Dynamic content pulled from Joomla
      4. Dynamic content pulled from another website, app, or service.
        1. How do you feel about coding PHP and Javascript?
          1. I love it!
            1. What are you waiting for? Use the core!
          2. You're scaring me!
            1. Find a reliable extension on the JED.

Can the core do everything you need?

  1. Yes! Joomla is awesome.
    1. What are you waiting for? Use the core!
  2. No, I need...
    1. ...to add extra information to the page.
      1. Check out custom fields, then use the core!
    2. ...to make sure it has a certain layout.
      1. Check out view template overrides and alternative layouts, and use the core!
    3. ...to add design elements or visuals.
      1. Check out view template overrides and alternative layouts, and use the core!

Result: Use the core!

The core does more than you might realize! When in doubt, give it a try. It's usually easier to switch from a core extension to a 3rd party extension than it is to go the other way. Plus, it keeps your site fast and easier to maintain!

Result: Find a reliable extension on the JED.

There are thousands of amazing extensions on the Joomla Extensions Directory. If you're looking for an extension, make sure you check whether it's compatible with your Joomla version and server, when is the last time it was updated, and whether it has good reviews or not.

{/sliders}

Leave Comments