Extensions
As mentioned at the beginning of this chapter, Joomla is a flexible CMS that allows you to extend its functionality with the help of additional software that can be installed on top of its core. Extensibility is a common feature for a CMS and has been key to the success of Joomla. In fact, this aspect allowed the growth of an extensions developer ecosystem, which has resulted in thousands of extensions being published over the years.
So, what is an extension? As the name suggests, an extension extends the CMS, providing additional functionality.
Possible examples are that you need to install a specific extension to add e-commerce features to your Joomla installation, or you need to install a photo gallery extension to build galleries easily on your website.
Extension types
In contrast to the other CMSs, Joomla makes use of several types of extensions. In fact, in Joomla you can have the following extension types:
- Components
- Modules
- Plugins
- Libraries
- Packages
- Templates
There are several differences between the types of extensions, and we will explore each one in brief here (you can refer to the Further reading section at the end of this chapter to learn more about these extensions).
Components
Components are mini applications. If you consider Joomla to be your website operating system (OS), you can consider a component as an application that you install on your OS. Components are installed to add features to the website and have two parts—an administration part, accessible via the backend of Joomla, and a site part, accessible through the website frontend.
Several components are provided in the core installation of Joomla, including Contacts, Tags, News Feeds, and Banners, which we will explore in a separate section.
You will need a component to add the following features:
- Backup
- E-commerce
- Newsletter
When you install an extension that adds specific functionality, it generally includes a component and other parts such as modules, plugins, and libraries.
Modules
Modules are used to display information or render data from components. They are used to build the page layout, showing specific features, such as the login module and the latest articles modules. Modules are assigned to menu items so that you can show a module on specific pages of the website. It is also possible to create custom HTML modules to show information or custom code.
Modules are used extensively in the backend and the frontend of the website.
Plugins
Plugins are the smallest type of Joomla extensions and provide features associated with trigger events. That means that when an event (for example, a page load) occurs, the function provided by the plugin is triggered.
There are multiple categories of plugins, based on the event type with which they are associated, for example, users, system, content, and authentication.
Also, any extensions can add custom events that trigger the action of specific plugins.
Libraries
Libraries are additional packages of code that provide a group of functionalities. Also, Joomla includes a series of external libraries to provide some features, for example, PDF export features, jQuery, PHPMailer, and a rapid application development framework.
Packages
Packages are a particular type of extension that allows administrators to install multiple extensions at once. For example, if an extension comprises a component, some modules (frontend and backend, for instance), and some plugins, it is common for the developer to provide just a single package. This way, it is easier to install the extension with all the needed pieces at the same time instead of executing multiple installations.
Templates
Templates are a type of extension that dictates how a website looks. There are two different types of templates: frontend templates and backend templates.
Frontend templates are used on the publicly accessible side of a website. The default frontend template for Joomla 4 is Cassiopeia.
Backend templates are used to render the administration interface. Atum is the default backend template for Joomla 4, and it is the one visible in the screenshots included in this chapter.
Extensions management
The backend application of Joomla includes several functions to manage extensions, allowing the administrator to conduct the following operations:
- Install a new extension
- Update an extension
- Delete an extension
- See the list of installed extensions
All extensions, whether downloaded for free or paid, are provided in the .zip
file format and can be installed through the dedicated function in the Joomla backend.
The extensions management features are accessible through the System Dashboard.
The Joomla! Extensions Directory
From the backend of the application, you can access the Install from Web feature, which allows you to install any of the thousands of extensions published on the Joomla! Extensions Directory. This is a web portal in which third-party developers publish their extensions, either free or paid.
Extensions will add to your website additional features and capabilities, on top of those included by default. In the next section, we will explore the components included in the standard Joomla setup.