1. Inleiding
Bij het werken aan een eigen Joomla-website kan het handig zijn om te begrijpen wat de (interne) structuur is van Joomla en hoe Joomla werkt. In de wereld van informatie- en communicatietechnologie noemt men zo'n structuur ook wel de informatie- of ICT-architectuur. Vaak kun je daarbij meerdere niveaus onderscheiden van meer technisch tot functioneel en het niveau van wat de gebruiker op internet ziet van je site.
Bij de technische architectuur gaat het bij Joomla om een MySQL-database bij de provider van een Joomla-hosting pakket, een Apache-webserver, de PHP-scripttaal voor het dynamisch (realtime) creëren van webpagina's en CSS als taal voor het (bij Joomla met templates) vormgeven van webpagina's. Over die laag gaat deze pagina niet.
Ook leg ik hier niet uit hoe alle informatie voor een Joomla-website zoals aanwezig in de Joomla-database combineert tot wat de gebruiker in een browser kan lezen en bekijken.
Deze pagina gaat vooral over hoe de programmatuur voor een Joomla-website is verdeeld over verschillende soorten 'brokstukken' en hoe die als functieblokken op een scherm invulling geven aan de voorkant van een Joomla-website.
2. Wat zijn extensies?
Als je Joomla installeert voor een Joomla-website, bijvoorbeeld zoals beschreven op deze website onder de menu-optie Eenvoudige variant voor start met eigen Joomla-website, dan is het resultaat operationele programmatuur waarvan een deel tot de kern (de core) van Joomla behoort en waarvan een ander deel bestaat uit uitbreidingen in de vorm van zogenoemde extensies (extensions). Dit is de simpele en makkelijk te begrijpen uitleg over wat extensies zijn.
Maar er zijn ook extensies die tot de kern van Joomla behoren en die al in de zogenoemde package voor een Joomla-installatie zitten. Het woord extensies, dat uitbreidingen betekent, moet je dus niet al te letterlijk nemen.
Waar het uiteindelijk op neer komt is dat een groot deel van de programmatuur van Joomla bestaat uit brokstukken (of sets of verzamelingen) van programmacode die binnen Joomla een extensie heten.
Veel extensies horen standaard bij Joomla en zijn afkomstig van het Joomla-ontwikkelteam. Maar derden maken ook extensies en dus echte uitbreidingen op Joomla. Dat soort extensions kun je op internet vinden in de Joomla Extensions Directory (JED). En is er ook nog een beperkt aantal extensies dat wel van derden is, maar toch zijn opgenomen in de kern van Joomla.
Na installatie van Joomla kun je na inloggen op de backend alle extensies vinden onder de tab Extensions en dan > Manage > Manage. Dat ziet er uit als onderstaand.
Hierin zie je in de kolom Author dat de meeste extensies van het Joomla-project oftewel het Joomla-ontwikkelteam zijn. Maar er staan ook een paar extensies van derden bij, zoals te zien bij de e van editors. Die zitten dus al standaard bij Joomla.
Hieraan kun je zelf extensies toevoegen van derden toevoegen, waarvan er vele in de genoemde JED (Joomla Extensions Directory) staan. Dat toevoegen gebeurt door dergelijke extensie te installeren, waarvoor je ze vanuit de JED kunt downloaden om ze vervolgens als package te uploaden onder Extensions > Manage > Install. Waarna je ze ziet verschijnen in de lijst onder Extensions > Manage > Manage.
3. Wat zijn componenten, modules, plugins en templates
In de lijst met alle voor een site beschikbare extensies zit ook een kolom 'type'. In die kolom zie je dat er verschillende soorten extensies zijn. Zo zijn er extensies voor onder andere:
- components;
- module;
- plugins;
- templates.
Componenten zijn relatief grote stukken programmatuur. Verschillende componten behoren tot de centrale kern van Joomla.
Modules zijn middelgrote stukken programmatuur en veel modules zijn bedoeld om binnen een Joomla-website een zogenoemd functieblok op het scherm in te vullen. Voorbeelden daarvan zijn de module voor inloggen op de voorkant van een Joomla-website, standaard te zien na een standaard installatie van Joomla, modules voor een of meer menu's, een module voor een broodkruimelspoor (laat zien waar de gebruiker/lezer zich bevindt in de menustructuur) en modules voor nieuwsberichten. Een voorbeeld van het laatste zie je op deze website in de rechterkolom. Op deze zelfde website zie je bovenin direct de afbeelding van een landschap een regel met menukeuzes en daaronder een regel met een kruimelpad. Als laatste hieronder het voorbeeld van een functieblog voor het inloggen aan de voorkant zoals te zien na een standaardinstallatie.
Modules zijn dus blokken met een bepaalde functie en over het algemeen (of altijd?) moet je ze een plek geven op je website door per actieve module een positie te kiezen in het actieve template.
Plugins zijn de kleinste stukken programmatuur.
Templates is een verhaal apart. Daarover valt heel veel te zeggen, maar dat past niet op en bij deze pagina. Je vindt ze in de backend onder de tab Templates. Als je het simpel houdt, dan kies kijk je onder de tab Templates alleen naar Styles. Na een standaardinstallatie zie je daar twee stijlen op basis van de twee bij Joomla horende standaardtemplates (alles voor de situatie van een Joomla 3.x-versie). Standaard staat het sterretje bij de stijl van het template Protostar op actief. Wil je eens zien wat je met de stijl van het andere template kan, dan zet je met een klik op het sterretje van de stijl van andere template deze stijl op actief.
4. Het gebruik van extensies anders dan templates
Dat er extensies zijn voor componenten, modules en plugins wil nog niet zeggen dat je ze ook altijd direct als zodanig kunt gebruiken.
Extensies voor modules kun je over het algemeen (of altijd?) pas gebruiken als je eerst zelf een module aanmaakt die gebruik maakt van een extensie voor modules. Dat doe je door naar in de backend naar de tab Extensies te gaan en dan te kiezen voor Modules en daarna voor de knop New of Nieuw. Meer hierover in de volgende paragraaf.
Voor extensies voor componenten geldt dat je het gebruik ervan, voor zover nodig, regelt onder de tab Componenten. Voor zover nodig omdat daar iets maken alleen zin heeft als dat kan en nog niet automatisch al beschikbaar en in gebruik is. En als iets nog niet in gebruik is, dan moet je weten wat je ermee wilt voordat je iets aanmaakt of instelt. Of je zelf een component kan aanmaken op basis van een extensie voor een component is afhankelijk van de soort extensie voor componenten. Als je onder de tab Componenten voor een component of soort component kiest dan krijg je soms een knop New of Nieuw waarmee je zelf iets kant aanmaken en soms niet.
Voor plugins ligt dat nog weer anders. Plugins op basis van een extensie voor een plugin vindt je onder de tab Extensies en dan Plugins. Dat levert een lijst met beschikbare plugins op. Die kun je actief of inactief maken en soms kun je na doorklikken het een en ander instellen. Maar zelf een plugin maken op basis van een extensie voor een plugin zit niet in het 'systeem' van Joomla.
5. Meer over modules en extensies voor modules
Bij het opzetten van een eenvoudige Joomla-website krijg je nog het meeste te maken met modules. Daarom hier nog wat meer over wat je daarbij kun tegenkomen.
Er zijn extensies voor modules die na een standaardinstallatie al geïnstalleerd zijn (zie Extensions > Manage > Manage) en die ook al gebruikt worden door een actieve module (zie Extensions > Modules). Dat zijn de login voor gebruikers, Menu aan de extensiekant en Main menu (hoofdmenu) aan de modulekant en Breadcrumbs oftewel het broodkruimelspoor.
Er zijn extensies voor modules die na een standaardinstallatie al geïnstalleerd zijn maar waarbij er nog geen module is die daar gebruik van maakt. Voorbeelden daarvan zijn onder andere Articles - Newsflash, Articles - Archived, Articles - Latest en Articles - Most Read. Als je die wilt gebruiken, dan maak je onder Extensions > Modules met de knop New een nieuwe module aan waarna je moet kiezen welke extensie je daarvoor wilt kiezen. Een voorbeeld hiervan, zoals al genoemd, is de module en het functieblok (andere naam voor hetzelfde) op deze website in de linkerkolom bovenaan.
En er zijn natuurlijk extensies voor modules die je zelf aanvullend kunt installeren om die vervolgens te gebruiken bij het maken van een module. Een voorbeeld daarvan op deze website is de module Populaire pagina's in de kolom links. Die is namelijk niet gebaseerd op de standaard beschikbare extensie 'Articles - Most Read' maar op de extensie 'FRC - Fewest Read Content' zoals te vinden in de Joomla Extensions Directory.