A Powerful and Extensible Core
One of the major characteristics of Joomla is represented by its core: a modern and robust web application that integrates many features and allows you to plan, build, and manage a complete website without the need to use a high number of extensions.
There have been several discussions over the years within the Joomla development team about decoupling features from the core in favor of a more lightweight core. However, over the years, the application has been constantly enriched by powerful and useful functions.
As of the 4.x version, Joomla includes features to create, organize, handle, and enrich articles and content, which is its primary scope. Plus, it offers a series of additional functions to build multilingual websites, manage users, build publishing workflows, handle media files, and customize the appearance of websites.
Furthermore, the main advantage of Joomla is its extensibility, allowing a website administrator to install additional features through third-party extensions to build complex websites and rich applications.
After reading this chapter, you will have gained the following capabilities:
- An understanding of the Joomla backend application
- To know what a Joomla extension is and the different types of extensions available
- To be familiar with the extensions shipped with the basic Joomla package
To complete the exercise proposed in this section of the book, you need to have a Joomla instance installed on a Linux, Apache, MySQL, PHP (LAMP) stack, either locally or remotely. You can easily install Joomla following the instructions published at https://docs.joomla.org/J4.x:Installing_Joomla.
If you don’t have an online hosting, you can launch a Joomla instance online for free using the official service at https://launch.joomla.org.
LAMP is commonly used to refer to a Linux-based hosting environment, on either local, shared, or dedicated hosting, which offers Apache, PHP, and MySQL services.
Once you have your instance up and running, you can log in to the backend section of the website, accessible from
<yoursiteurl.tld>/administrator. This represents the Joomla backend application that we’ll explore in depth in the next section.
The backend application
Joomla comprises two interconnected applications: a frontend application and a backend one. The frontend is the part of the system that is visible to website visitors. The backend is the part of the system that is used by the webmaster or the administrator to configure, build, and manage the website.
The backend is also the area that hosts most of Joomla’s functionality. These features include, but are not limited to the following:
- Article management
- Category management
- Media management
- Custom fields
- Module management
- Menu management
- Updates management
- Extensions management
- Users management
- Permissions management
- Template management
- Language management
- Application configuration
Joomla also exposes a wide set of APIs that allow extension developers to integrate core features (for example, category management) into their extensions, providing administration users with a consistent experience within the backend application.
Throughout this book, we’ll go through the features offered by the Joomla core and explore their options and the possibilities they provide.
The backend experience
One of the novelties introduced in Joomla 4 is a completely redesigned backend user experience, with a collapsible sidebar menu that replaces the previous horizontal top-bar drop-down navigation system provided by Joomla until version 3.10.
Figure 1.1 – The Joomla 4 dashboard
The new backend design found its origin in UX research conducted by Elisa Foltyn, who published a draft of the administration experience in the Joomla Community Magazine in December 2017 (A new User Interface for the Joomla Backend, Episode IV, https://magazine.joomla.org/all-issues/december-2017/episode-iv-a-new-user-interface-for-the-joomla-backend). The draft and preview were discussed extensively among the community and core developers, with the final version being slightly different from the original proposal. However, some key concepts are implemented in what we can now appreciate as Atum, the backend template.
Now that we know a little about the backend, let’s go on to explore the various menus in the dashboard.
Exploring the Joomla dashboards
Beyond the left sidebar menu for administration, Atum features another new concept to Joomla: dashboards. Dashboards have been introduced to provide a summary page where users can access all the relevant features for a specific area. Some of the dashboards are pre-defined and available to all Joomla administrators upon installation, for example, the Content Dashboard, Users Dashboard, Components Dashboard, Menu Dashboard, and System Dashboard:
Figure 1.2 – Components Dashboard
As shown in the preceding screenshot, dashboards are a collection of links to useful resources and functions. Let us explore these dashboards to see what each one has to offer.
Figure 1.3 – Content Dashboard
Table 1.1 – Content Dashboard
To summarize, the Content Dashboard allows an administrator to access almost all aspects of content management for the website, thanks to direct links to the features.
As we can see in Figure 1.3 and Table 1.1, the dashboard can be completely customized. In fact, the administrator can add, move, and remove modules in the Content Dashboard, as well as in any other of the pre-defined dashboards. This is particularly important as it allows the administrator to build a personal backend experience, with custom modules and dashboards that are tailored to their specific needs.
Also, as we’ll understand further in this book, every block (module) includes Permissions management features, allowing the site administrator to create personal dashboards also based on the permission level, differentiating the backend experience for the different access levels and permissions.
Next, we’re going to explore the the Home Dashboard.
Figure 1.4 – The Home Dashboard serving as the control panel
It allows the administrator to quickly access the most used and useful features, as well as to instantly check the status of the website. Let us explore a few of these in detail, starting with the Site module.
The Site module
- Article Categories
Figure 1.5 – The Site module
Another key module in this dashboard is the Latest Actions module.
The Latest Actions module
The Latest Actions module shows the five most recent actions executed by users and administrators on the website. The module takes data from the User Action Log feature included in User Management, which we will see later in the book.
The System module
Figure 1.6 – The System module
As you can see in the preceding figure, this module displays three buttons:
- Global Checkin: This option allows you to check whether some items are locked in the database (for example, articles and contacts)
- Cache: This option allows you to check the status of the system cache and purge it
- Global Configuration: This option allows you to access the Global Configuration screen
Next comes the Notifications module.
The Notifications module
Figure 1.7 – The Notifications module
Let us look at what each of these does:
- Joomla! Update Status: This area checks and provides notifications on the availability of an update for the CMS
- Available Updates: This section checks and notifies the user of the availability of updates for any of the installed extensions
- Override(s) to check: This section notifies the administrator about the need to verify whether an update of the CMS files may have caused the overrides to be obsolete
- Privacy Requests: This section shows whether there are any privacy information or deletion requests that are classified as urgent
The threshold to classify a request as urgent is completely customizable. We will discuss the core privacy features in Chapter 6 of the book.
Next, let’s look at the Privacy Dashboard.
The Privacy Dashboard module shows the list of the most recent privacy information or deletion requests. Just like the notification icon presented in Figure 1.7, this module is also directly connected to the Privacy Tool Suite of features that were introduced in Joomla in version 3.9. We will explore the privacy features in depth in Chapter 6.
The Logged-in Users section displays the list of users that are currently logged in to the system, either in the frontend or backend applications. The application to which they are logged in is displayed next to the name of the user. For users logged in to the website frontend, the administrator can also log them out.
The Recently Added Articles module
In addition to this, there is the Popular Articles module, which shows the most-read articles on the site.
Toward the bottom of the dashboard, there is a button that allows you to add a module to it so that you can customize the appearance of the dashboard. Moreover, each of these modules can also be customized/edited and rearranged in another position or unpublished.
Figure 1.8 – System Dashboard
Let’s explore the commands and options provided by the System Dashboard:
Table 1.2 – System Dashboard
We’ll now move on to another important dashboard, the Component Dashboard.
The Component Dashboard represents the access point to the installed components, which we’ll explore later in the chapter. This dynamic dashboard will grow automatically as we install other components on our websites.
The dashboard is made up of the same links to component parts that can be found under the Components menu in the sidebar.
Every installed component has a specific menu that allows the administrator to access a specific page or function.
For example, the Contacts component that is included by default in any Joomla installation has four links both in the Components Dashboard and in the Components menu. These links allow you to do the following:
- Open the list of created contacts
- Open the list of categories of contacts
- Open the list of custom fields for contacts
- Open the list of groups of custom fields for contacts
There is no standard number of menu items for each component, as the needed number is specific to the needs of the component.
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.
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.
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 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:
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 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 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 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.
- Install a new extension
- Update an extension
- Delete an extension
- See the list of installed extensions
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.
Exploring the included components
By default, Joomla includes a bunch of components, as well as other extensions, providing some basic features. Let’s explore the components shipped with the default package.
The Banners component
Banners is a component that allows an administrator to manage advertising banners on their website. Banners are a piece of content that might include media and/or text that contains advertising material. For each banner, the component allows you to set up the maximum number of impressions and the type of advertising strategy (for example, periodic or unlimited). Each banner should be linked to a client. The number of times a banner is displayed on the website (impressions) and the number of clicks on the banners are tracked by the component.
Banners might be placed in modules on the website frontend, such as common advertising that we are used to seeing on many websites nowadays.
The Contacts component
Contacts is one of the most used components in Joomla. It allows you to create contacts and provide a contact form for each of the contacts created. It is used to handle an address book of the different contacts of a company, allowing users to write to the desired person through a contact form published on the website frontend. Contacts can be organized into categories and can be enriched with additional custom fields.
The News Feeds component
News Feeds is a component that allows an administrator to integrate content from other websites. It gets as input an RSS feed and can import the content from a third-party website. Such external content might be displayed in a frontend module. For example, a local news website could use the News Feeds component to provide additional national news to their readers, importing RSS feeds of a national news provider.
The Smart Search engine
Smart Search is the internal search engine of Joomla. Smart Search indexes automatically, if enabled, the contents of the website and provides pertinent search results upon request to website users through a search engine module.
It is a comprehensive solution to index the content and provides users with an OpenSearch-compatible search engine. Administrators can extend the types of indexable content through additional plugins, allowing the component to index products, users, and much more.
The Tags component
Tags is a supporting component that allows administrators to introduce an additional level of categorization to their content. Tags are used to mark related content, surpassing the limit of a category for each item. Also, the same tag can be applied to content items across content types.
In this chapter, we have discovered the overall experience offered by the backend of Joomla, which tools it provides, and how it is structured. We have also learned what dashboards are available in the backend and how they can be customized to fit the needs of any website administrator.
After reading this chapter, you have learned how to navigate the backend of Joomla, understand the difference between the types of extensions available, and know the basics of the components shipped in a default Joomla installation. In the next chapter, we will go in-depth into the content management features.
- Component from Joomla! Documentation, https://docs.joomla.org/Component
- Module from Joomla! Documentation, https://docs.joomla.org/Module
- Plugin from Joomla! Documentation, https://docs.joomla.org/Plugin
- Library from Joomla! Documentation, https://docs.joomla.org/Library
- Package from Joomla! Documentation, https://docs.joomla.org/Package
- Template from Joomla! Documentation, https://docs.joomla.org/Template
- Joomla! Extensions Directory: https://extensions.joomla.org