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.

Extensions
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.

Extensies die je als extra wil toevoegen aan je website moet je zelf apart installeren. Dat is niet moeilijk, onder andere omdat deze beschikbaar zijn als kant en klare zogenoemde installatiepackages. Dat installeren kan op verschillende manier. Ik doe dat altijd als volgt:
  • 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

In de lijst met alle voor een site beschikbare extensies zit een kolom 'type'. Daarin zie je dat er verschillende soorten extensies zijn, waaronder:
  • components;
  • modules;
  • plugins;
  • templates.

Components zijn relatief grote stukken programmatuur. Verschillende componten behoren tot de centrale kern van Joomla.

Modules zijn middelgrote stukken programmatuur. Veel modules zijn bedoeld om binnen een Joomla-website een zogenoemd functieblok op het scherm te zetten. Voorbeelden daarvan zijn:
  • 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

Als je een extensie van het type module wil gebruiken dat nog niet in gebruik is, dan moet je veelal eerst een module aanmaken en die een plek geven binnen het actieve template. Dat doe je door naar in de backend te gaan naar System > Manage > Site modules > New en dan te kiezen voor een module type.
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.