If you are new to Joomla this very basic guide is intended to give you some pointers towards the basics of how Joomla is structured.
Components, Modules, Plugins, and Templates
What are these and what do they do?
At its heart, Joomla is an application that provides a framework for other Joomla applications to run on your website. A comparable analogy might be Microsoft Office, which provides a framework and the connectivity between the various Office apps such as Word, Excel, Outlook and Powerpoint etc.
The apps that run within Joomla are called Components. There are default core components that are installed with Joomla:
- The Content Manager which manages the content of your site - Articles (pages) and Categories,
- Menu Manager for managing menus,
- User Manager for managing users, user access levels, and user privacy
- Banners Manager for managing banners and some graphics
- Contacts Manager for managing organisation contacts (company and individuals) and contact forms
- Messaging to send messages to users
- News Feeds to display RSS feeds from external sites
- Redirects to manage page redirections within the site
- Search / Smart Search to manage how the search function works on your site
- Tags to manage any tags you might add to your content
- Weblinks to display and manage lists of links to external websites or resources
If you add components for additional functionality to your site, such as e-Commerce, directory, form builders, etc these will also appear on the Components menu in your site control panel.
On sites we build, we automatically add a number of components to provide additional functionality, and admin utilities. These may include:
- Akeeba Backup Pro for backing up your site on demand
- JCS Editor Pro, an enhanced content editor
- Regular Labs Extensions for page tabs, sliders, modals, advanced module and template management and more
- RS Firewall Security Package
Modules are the building blocks of the 'front end' of your site. They are usually, but not always, associated with a component. For example, the user module is associated with the User manager, and can display the login form and welcome messages on a page, and the search module display a search box and is associated with the Search component.
Where modules are displayed is set in the template layout (more on that later). There are too many module options to list here, but clicking on the New option in the module manager (Extensions > Modules) will present you with a full list of module options available.
As well as the core Joomla modules, you can also install 3rd party modules many of which work with Joomla components, and others that might be 'stand alone'. Most common of those are menu modules that provide more fancy menu options. We would normally add the Maximenu CK module which provides a range of drop down and full screen options, together with multicolumn layouts and the ability to insert other modules into the dropdown.
Other common 3rd party modules are image slideshows and the like. A common one is CK Slideshow, a simple and easy to manage module, but there are other very sophisticated alternatives such as the Revolution Slider and marquee displays.
Most additional components you add to your site will normally also install some additional relevant modules. E-Commerce components may add modules to display new products, featured products, shopping baskets for example.
As already mentioned, modules are normally displayed in positions set by the template, but there is an alternative to this - modules can be inserted into articles by use of a simple 'shortcode' snippet. This is a really useful feature, allowing you to drop modules into individual pages as needed. One particular module is very useful here and worth mentioning: the 'Custom' module. The Custom module is simply a page-within-a-page module, and can contain text and images, and is a very handy way of displaying the same content on multiple pages, for example a standard disclaimer, or a link to more information etc. Putting that sort of information in a module means that you only have one place that needs to be updated in the case of a change.
Plugins in Joomla should not be confused with plugins in Wordpress. In Wordpress a plugin is more akin to a component in Joomla. A plugin in Joomla is a script that runs in the background, providing some additional, often optional, or configurable, functionality. Again many additional components may add additional plugins required by them.
The reason that not all plugins are enabled by default is that each plugin adds a little to the processing required for each page, so those not required for the core processes are disabled to avoid slowing your site down. If you enable a feature on your site, you may get a message that you need to enable and configure the relevant plugin. Enabling Google reCaptcha for your login pages is a prime example - you will need to enable the plugin and add your reCaptcha keys.
Plugins can be accessed and managed from Extensions > Plugins
Templates control how your site appears. It generally consists of a core page containing the layout, and stylesheets to set fonts, colours, and rules for what happens on different devices. The template may also have a range of configurable options, alternative colours etc. Importantly it also contains the information on the module positions available, and where they are on the page.
It is sometimes handy to think of a template as a pegboard, with hooks that you can 'hang' (assign) your modules on. There will be one area that is the content area, which is where your article text will display, and the content from any additional component, and a variety of 'positions' where you can display your modules. Some of these will be quite obvious, like a position for a logo, or the main menu, but others will be more generic, allowing you to place modules as you like.
Very often, modules will be on every page (like menus or login modules), but sometimes you will only want particular modules to appear on specific pages, and that can be managed though the Module manager.
To wrap up...
Hopefully this has given you a quick overview of how the various elements of a Joomla website fit together. Joomla is a very powerful Content Management System (CMS), with a huge range of options, and sites can become quite complex, but all will follow this same basic structure, so however complicated your site appears, it should remain manageable.
And don't forget we can help if you get stuck.