1. Inleiding
Dit artikel geeft enige achtergrondinformatie over hoe Joomla-programmatuur in elkaar zit en werkt. Want bij het bouwen van een Joomla-website kan het handig zijn om wat meer te begrijpen van de interne structuur van Joomla. In de wereld van informatie- en communicatietechnologie noemt men zo'n structuur de architectuur van een systeem of applicatie. Bij de architectuur van een systeem kun je meerdere niveaus onderscheiden, van meer technisch tot meer functioneel.
Bij de technische architectuur gaat het om wat er op de servers van een Joomla-hostingprovider draait en waarmee een administrator een Joomla-website kan bouwen. Dat is voor niet al te complexe situaties een MySQL-database, een Apache-webserver, een PHP-scripttaal voor het dynamisch (realtime) creëren van webpagina's, CSS als taal voor het (bij Joomla met templates) vormgeven van webpagina's en de Joomla-programmatuur van de Joomla.org-organisatie. Het is goed om te weten dat dit essentiële technische onderdelen zijn. Want de Joomla-programmatuur stelt eisen aan de versies van deze onderdelen en als er ikets fout gaat, dan kan daar de oorzaak het probleem zitten. Maar veel dieper dan dit gaat deze pagina niet bij de uitleg die hier nog volgt. Ook leg ik hier niet uit hoe Joomla alle informatie voor een Joomla-website zoals aanwezig in de Joomla-database combineert tot wat de gebruiker met een browser ziet van een Joomla-website. Dat laatste, dus wat een Joomlawebsite doet voor en laat zien aan een gebruiker, is het functionele niveau. Dat is ook het niveau waarop de administrator de website inricht voor de gebruiker. Daarom gaat deze pagina vooral over hoe de programmatuur voor een Joomla-website bestaat uit wat ik hier benoem als bouwblokken die samenwerken en elk een eigen functie hebben.
2. Extensies
Als je Joomla installeert zoals beschreven op deze website onder de menu-optie Eenvoudige variant opzetten Joomla-website, dan is het resultaat operationele programmatuur waarvan een deel bestaat uit de kern (de core) van Joomla en een ander deel uit uitbreidingen, de zogenoemde extensies of extensions. Daar zijn twee soorten van: standaardextensies die standaard al aanwezig zijn in de package voor een Joomla-installatie en extensies die je later zelf kan toevoegen als je die nodig hebt voor functionele uitbreidingen. Die laatste groep vind je in een uitgebreide digitale map op internet. Dat is de Joomla Extensions Directory (JED) van de Joomla.org-organisatie
Dit laat al zien hoe Joomla-programmatuur in elkaar zit. Joomla is niet een heel groot programma, maar een verzameling van programma's met programmacode die als bouwblokken in elkaar passen en kunnen samenwerken. Op die manier is Joomla modulair opgezet en bestaat uit brokstukken programmacode die samenwerken.
Als Joomla eenmaal is geïnstalleerd dan vind je de extensions onder System > Manage > Extensions. In Joomla 5.x ziet dat er uit als onderstaand.

Hier zie je in de kolom Author dat veel extensies van het Joomlaproject oftewel het Joomla-ontwikkelteam zijn. Maar er zijn ook veel extensies van derden. Die vind je vooral in de genoemde JED.
- downloaden van packages vanuit de JED en opslaan in een eigen directory op bijvoorbeeld je PC/laptop;
- dan naar Extensions > Manage > Extensions > Install Extensions > Upload package file;
- een in je eigen omgeving opgeslagen package sleep je daarnaartoe. Daar eenmaal neergezet installeert de package zichzelf, waarna je de extension ziet verschijnen in je eigen lijst extensions;
- als laatste actie moet je de desbetreffende extension nog met een groen vinkje actief maken.
3. Componenten, modules, plugins en templates
- components;
- modules;
- plugins;
- templates.
Components zijn relatief grote stukken programmatuur. Verschillende componten behoren tot de centrale kern van Joomla.
- de module voor inloggen op de voorkant van een Joomla-website, te zien na een standaardinstallatie van Joomla;
- modules voor een of meer menu's;
- de module voor een broodkruimelspoor (laat zien waar de gebruiker/lezer zich bevindt in de menustructuur);
- modules voor nieuwsberichten. Een voorbeeld van het laatste zie je op deze website in de rechterkolom.
Modules zijn dus blokken met een bepaalde functie. Over het algemeen moet je ze een plek geven op je website door per actieve module een positie te selecteren die daarvoor beschikbaar is in het actieve template.
Plugins zijn de kleinste stukken programmatuur.
Templates regelen de vormgeving van een Joomla-site. Je vindt ze in de backend onder System > Templates > Site templates. Als je na een standaardinstallatie van Joomla 5.x naar System > Templates > Site template styles gaat dan zie je daar dat het template met de naam Cassiopeia al actief is. Dit is het standaardtemplate van Joomla 5.x. Als je deze template style opent dan kun je vooral onder de tab Advanced het een en ander dat betrekking heeft op de vormgeving van de site, instellen.
4. Het gebruik van extensies anders dan templates
Na een standaardinstallatie van Joomla kun je door naar System > Manage > Site modules te gaan zien dat de volgende drie modules al actief zijn:
- een login module;
- een menu module;
- een broodkruimelspoor.
Voor extensies voor componenten geldt dat je het gebruik ervan, voor zover nodig, in de backend regelt onder Components in de linkerkolom. Daar kies je dan een component van het gewenste type, dat open je en vervolgens kies je voor het aanmaken ervan door te klikken op New. Dit kan qua naamgeving wat verwarrend zijn. Er zijn programma bouwblokken van het type component en module. Als je daarmee iets wil op je website, dan maak je daarvoor iets aan dat een plek krijgt en ook een component of module heet. Die gebruikt de overeenkomende standaardextensie vervolgens om de functie van die extensie actief te maken op die plek. Op die manier kun je bijvoorbeeld twee, drie of meer broodkruimelsporen op je website zetten. Bij dit voorbeeld is dat niet zinvol. Maar zo kun je bijvoorbeeld wel meerdere menus maken.
Plugins in de vorm van een extensie vindt je door te kiezen voor System > Manage > Plugins. Je ziet dan een lijst met de binnen de website beschikbare plugins. Die kun je actief of inactief maken en soms kun je na doorklikken het een en ander instellen.