Extension Management in Joomla 4
In this chapter, you will learn how to install, manage, and use third party extensions in Joomla 4. You will also learn about some of the most useful free extensions, including Akeeba Backup, one of the best free backup extensions available.
We have touched on the various extension types throughout this series (especially in Chapter 3). Here's a more detailed description of each type of extension.
Components are usually large pieces of software which add significant functionality, content creation/publishing, and management tools to the website. Examples of components include the Articles component, the Users component, the Menus component, and the Search component.
Components take up the bulk of the area on any page. Components may have one or more views. A view is a pre-defined layout for displaying information relevant to the component. For example, the "Article" view of the Articles component displays a single article, but the "Category List" view of the Articles component displays a list of all articles in a category. Different views and view options are set and modified per menu item.
Components have two parts - a site facing part and an administrator facing part. The site part displays the content and forms that general users can see and interact with. The admin part deals with configuring and managing the component.
Most components have their settings under the "Options" section. The options and permission settings for all components can be viewed together in the sidebar under the Global Configuration. Some components have separate, more detailed options and tool pages too, which you must access through the component itself in the administrator menu.
Modules are blocks of code that run on one or several pages. Each module must be assigned a module position on a template in order for it to be displayed.
There are administrator modules and site modules. Administrator modules are shown in the various dashboards across the admin interface. Site modules are shown on the website's front end.
Examples of modules include menus, the search module, the login module, and more.
Modules may be related to other extensions as well. For example, the menu module displays a menu, and the menus component configures them.
The positions, orders, and settings of a module can be changed from the Module Manager. You can access it under Content Site/Admin Modules.
Templates define the look and feel of the website. Most templates are front-end site templates, but it is possible to create custom administrator templates as well. The template itself contains all the files needed for it to function. Templates are configured under different template styles, where you can change color settings and layout options. The style settings for each template vary depending on what features the template's developer included.
The default template is the template that is assigned to all pages on your site, unless another template style was configured for certain menu items. You are required to have a default template set at all times.
Templates provide the basic layout of all the pages across your website. They tell modules and components where to be shown on the page.
At a bare minimum, templates should offer positions for:
- Component - Where the component is rendered.
- Menu - A position for a menu to be displayed.
- Sidebar - A position for additional modules to be displayed.
Most templates also include dedicated positions for search boxes, login forms, footers and headers. It's not uncommon for a template to have dozens of module positions.
Templates also include areas for you to add branding as logos, taglines, and titles.
Plugins work behind the scenes to add functionality and handle important internal functions. They do everything from handling user authentication to modifying the way content is displayed. There are well over a hundred different core plugins installed with Joomla. They are sorted into folders by type based on what they do.
Plugins are edited using the plugin manager. Some plugins have no settings, some have many. You can view the individual settings available to each plugin by opening them from the plugin manager.
Here's a list of all the different types of plugins, along with what they do.
- Actionlog - Records actions of different users and saves them to a log
- API-Authentication - Provides ways to authenticate users using various APIs
- Authentication - More standard authentication methods, such as Cookie, Joomla, and LDAP
- Behavior - Traits attached to certain item types
- Captcha - Anti spam challenges like reCAPTCHA
- Content - Adds features and makes changes to content items (articles)
- Editors - Different editors used to edit HTML, such as TinyMCE
- Editors-XTD - Adds special buttons to editors
- Extension - Plugins related to managing extensions in Joomla
- Fields - Different field types used in forms
- Filesystem - Allows Joomla to manage files on the server
- Finder - Plugins related to the search component
- Installer - Different installation methods, related to the installation of extensions
- Media-Action - Plugins that allow you to modify media within Joomla (resizing an image, for example)
- Privacy - Has to do with privacy requests and the privacy/users component
- Quickicon - Displays important notifications to admins
- Sampledata - Contains the sample data you can use for demo Joomla sites
- System - Many assorted but essential plugins related to Joomla's inner workings
- Task - Routine checks that do things
- TwoFactorAuth - Additional ways to verify a user beyond just a password
- User - Plugins related to the Users component
- Webservices - Has to do with how Joomla can integrate with external services/APIs.
- Workflow - Features of Workflows, if you're using Workflows as part of article management
The types of plugins you'll be editing most will probably be in the content, editors, user, and system folders.
Language extensions allow you to view your website in other languages. Note that this only applies to the labels of fields, documentation, interface elements, etc. It will not automatically translate your articles from English to Spanish, for example.
The default language used in Joomla is British English (en-GB). This is the language that will receive updates the fastest after new updates. It may take time for other languages to be updated after new versions of Joomla are released.
You may add additional languages and set them as the default under System Manage Languages.
Additional Extension Types
The last three extension types are File, Library, and Package. They're important, but you won't encounter these types of extensions in day to day use often.
Extensions of type "File" is used to install files to a directory in Joomla. You will not use any file extensions.
A package is a group of other extensions that work together. Many large extensions that contain multiple pieces are placed in packages.
Libraries are PHP files Joomla or its extensions need to work. They're libraries of code which contain functions required by other extensions.
The extension manager allows you to view every extension currently installed on your Joomla site. You can find it under System Manage Extensions.
The "Extensions: Manage" page summarizes every extension installed in Joomla. This includes both core extensions that come with Joomla and are required to make it work, and any third-party extension you may install. There are several hundred core extensions. Everything from the component that manages users to the menu system can be found here. You do not need to understand what every single one of them does. Unless you know what you're doing, you should be fine largely leaving this area alone.
Since there are so many extensions, if you need to find a particular one, you'll likely want to use the filtering/search tool to locate it.
The toolbar allows you to enable, disable, or uninstall the selected extension(s). You can also refresh the cache for an extension.
- Enabled: The extension is turned on and is active
- Disabled: The extension is disabled, but is still stored on the site somewhere.
- Uninstall: Disable and remove all files associated with this extension
- Refresh Cache: Extensions are cached for improve site performance. If you change an extension, and the changes are not reflected when you refresh the page, you may need to clear the cache for that extension.
The most used feature on this page will probably be the uninstall option. If you test out a new extension and decide you don't like it, then go to this page to uninstall it completely.
By default, only administrators and super users may edit extensions. Only super users can delete/uninstall extensions. I wouldn't recommend changing these permission settings. You certainly don't want your users accidentally deleting extensions.
The easiest way to find paid and free Joomla extensions is through the Joomla Extension Directory.
Make sure the extensions you're looking at support Joomla 4. Not all extensions work with Joomla 4. Some only work with Joomla 3.
Test your extensions out on a test server if possible before deploying them onto a live website.
Do not install multiple extensions that do very similar things. For example, if you have one performance optimization extension, adding another might mess things up. Pick the one you like the best and stick with it.
There are several ways to install extensions on your website. You can install the extension from a zip file you upload, as was discussed in the last chapter, you can install from a URL, you can install it using the "Install From Web" tab, or you can upload the extension with an FTP client and manually install it.
To get to the extension installer, navigate to System Install Extensions.
Install From Package
The easiest and most common way of installing extensions is through the "Upload Package File" option. When you find an extension you want to use, you will be given the option to download the extension as a zip archive. You then upload the extension and it's automatically installed.
Install From Folder
If an extension is too large to be uploaded as an archive file to your web server, you may need to use the "Install From Folder" option. To do this, download the archive from the software developer, extract it on your local PC, and then upload all these files to a directory on your web server using your file transfer application of choice (usually FTP).
If you don't know how to upload files manually to your server, you will need to read the documentation from your web hosting provider. It normally involves creating an FTP account through your web host control panel, installing an FTP client on your computer, and using that FTP client to upload the files.
You may upload them anywhere on your web server that Joomla has access to. The default folder Joomla uses is the "tmp" directory under wherever you installed Joomla.
Install From URL
If you are given a direct link to the archive file, you can copy/paste it here. Joomla will download the archive and install it. This is not a commonly used way to install extensions.
Install From Web
The Install From Web tab was introduced with the goal of making it easy to find and install extensions without the need to manually download them or deal with uploading archive files. It's arguably the easiest way to install extensions. Just find an extension you want, and click install.
If the extension you want to use can be found here, it may be a good option. Note that you can only install free extensions from this tab. If the extension costs money, go to the developer's website, buy it, and install it from an archive file. Additionally, you won't find any templates here.
To make sure you're getting the most up-to-date copy of an extension, you may still want to get it directly from the developer.
Example: Install and Use Akeeba Backup
Joomla does not provide full site backups out of the box. Akeeba Backup is an administrator component which can back up your entire Joomla website. It takes all the files in Joomla, along with the database, and compresses everything into a single archive file, which you can then download and save for later.
There is a free and a paid version available. The free version has full backup functionality. The paid version adds automated backups, if you want a backup taken every day, for example.
Before you install any other extension, or start working heavily on your site, I'd recommend installing this extension. Make backups frequently, especially after editing a lot of content, installing new extensions, or installing updates.
Installation - Package Option
The first option is to install Akeeba backup using the archive option. To do this, navigate to Akeeba's website and download the latest version of Akeeba Backup Core for Joomla. Make sure you download the version for Joomla 4, not 3.
The package file is in the form of a zip file. After downloading, go to the extension installer (System Install Extensions) and upload the file. Joomla will automatically extract and install the files.
You will know it was successfully installed, as there will be a success message displayed:
Installation - From Web Option
Akeeba Backup may also be installed from the "Install From Web" tab under the extension installer. Akeeba backup is actually the first item shown on this page, since it's so popular. Click it and then click the install button to install.
Using Akeeba Backup
Once it's installed, a new menu item will appear under "Components" in the admin menu for Akeeba Backup. Go to this and select the "Configuration" option.
The profile configuration page for Akeeba Backup contains all the settings Akeeba uses when it makes backups. These are technical settings related to how Akeeba finds the files and compresses them into an archive. Change nothing here. Just click "Configuration Wizard" at the top.
Taking backups of an entire website can be a somewhat resource intense task for the server. Many of the cheaper shared web hosts will restrict the amount of server resources you're allowed to use. So Akeeba needs to check and make sure it can operate properly.
The configuration wizard will start running. It may take a couple minutes. Leave the page up. When it's done, you can backup your site by clicking the "Backup Now" button.
If you encounter any errors, you may need to refer to Akeeba's documentation.
On the backup page, you can enter a brief description explaining why you're making a backup (for later reference) and give the backup a longer comment. Usually I just leave the short description as is. If I've recently made major changes to my website, I put additional details in the comment.
The backup will begin when you click "Backup Now!"
Do not close the browser window until you see a completion message or an error message. This may take anywhere from a few seconds to several minutes, or longer, depending on the size of your website and the resource restrictions of your server.
You should get to a success message like this one when it's done. From here, you can return to the control panel or manage your backups. Let's look at the manage backups screen.
On this page, you can view all the backups Akeeba has created, along with relevant details. You can also download the backup file directly from this page through your web browser. I'd recommend downloading a copy of your backups and storing them locally on your computer, or, even better, in a cloud drive like OneDrive, iCloud, or Google Drive. That way, even if your server breaks or gets destroyed in a hurricane, you have a backup ready to go.
You will get a warning when downloading through your browser. It's more secure to download your backups through FTP. This can help ensure archives never become corrupted. I, personally, have never experienced an issue with corrupted archives. But it's certainly something to consider if you're dealing with a very important website.
Backup Frequently and Test
A backup is worthless if it doesn't work. You should periodically test to make sure your backup archives are working. To do this, you will need to use Akeeba Kickstart to restore your entire backup on a test server. If it completes successfully and the site seems to work, you know the backup was done properly. If things are missing, or it cannot restore the website, then you need to check your backup configuration per Akeeba's recommendations in the documentation.
I don't test my backups every time, but I do run a periodic test every week or two, just to make sure everything's still there. If you're running a mission critical website, a site with many users, or an online store, make backups daily and run tests on a more frequent basis. You don't want to lose 50 customer orders because your website crashed and your last backup was a week ago.
Joomla itself and third party extensions are frequently updated to add new features, fix bugs, and eliminate security issues. You need to check for updates often, and make sure you're keeping your extensions up to date. Especially if your website stores sensitive user information or customer orders. Security updates are especially important, as they keep you and your users safe.
Whenever you update Joomla or its extensions, Joomla overwrites existing files with new files, and possibly makes changes to the database. Things can and do go wrong from time to time. It's always recommended that you backup your entire website prior to running updates, and test everything after to make sure features still work properly. If an update goes wrong, you may find yourself locked out of the front end and the backend of your site due to an unforeseen error.
Joomla automatically checks for updates every time you visit the dashboard in the admin panel. They're listed under the "Notifications" module.
You can also check for updates under the Updates section of the System page.
On the extension updates page, you can click the extensions you want to update, then select the "Update" button. Joomla will download the update files from the developers and install the updates.
If Joomla's update system doesn't work you can manually update an extension by going to the extension installer and upload a copy of the latest version. This will overwrite the previous version. This is usually safe, and shouldn't result in any data loss. Anything stored in the database related to the old version of the extension should carry over to the new version.
Most Useful Extensions
Here is a list of some free extensions I find to be exceptionally useful. Many of these have been around for over a decade. This is completely subjective. To use these extensions, reference the developer's website.
Akeeba Backup is a comprehensive backup solution for your Joomla website. Highly recommended, as discussed above. Offered in free and paid versions.
Advanced Module Manager
Advanced Module Manager by Regular Labs extends how you display modules. It allows you to set modules to only display (or not display) on items based on filters you set. Filters can be based on article category, user group, access level, and much more. The free version has more than enough filters for most use cases.
Joomla Content Editor
JCE is an alternative HTML editor you can use instead of TinyMCE. It features more advanced customization options than TinyMCE. Offered in free and paid versions. The paid version has more intuitive media management features and useful plugins.
Community Builder is an enhanced user management and profile solution. It integrates with many other Joomla extensions. You can customize the registration process, add custom fields, and users can display public profiles with avatars. It's kind of like a mini Facebook. The free version gives you the basics, the paid version has many useful addons.
Phoca Gallery is a nice way to organize and show collections of images. Great for project portfolios or just showing off your favorite pictures.
HikaShop is an ECommerce solution designed exclusively for Joomla. Manage user orders, products, and payments all in one place.
Here are some honorable mentions. Some are free, some are not.
- Phoca Download - Free - Download manager for your site if you need to share many files
- AllVideos - An easy to use way to embed videos from external sources (eg. YouTube) in your articles.
- DJ Catalog - Paid - A powerful directory/listings system.
- JoomSocial - Paid - Turn your site into a social network. A newer, sleeker alternative to Community Builder.
- Community Answers - Paid - Add community questions and answers to your site. Kind of like StackExchange or the dead Yahoo Answers.
- JLex Comments - Paid - The article comment system I use on this site. Integrates with many different extensions.
- Convert Forms - Free/Paid - An easy to use form builder for contact forms, quotes, etc.
This concludes chapter 9 on extension management. In the next chapter, we'll learn about more ways to optimize site performance. You'll also learn about a few more useful extensions.
- Key Takeaways:
- Extensions can be installed by uploading package files provided by the developer
- You should keep extensions up to date with Joomla's internal update system
- Some extensions are free, many are paid. Some are free and paid, with the paid version having more features
- You can find extensions on the Joomla Extension Directory or under the Install From Web tab of the extension installer
Instructions: Take a look at all the extensions in the Joomla Extension Directory and see if there are any you'd like to try out. I'd recommend starting with Akeeba backup, as was discussed in this chapter. Remember, it is possible for extensions to break your website. You may need to reference the extension developer's documentation if you get stuck. If you encounter errors, you may need to disable or uninstall certain extensions. Not all extensions are compatible with one another.