Joomla uitgelegd
Joomla is een gratis, open source contentmanagementsysteem dat alles aandrijft, van kleine zakelijke websites tot grote meertalige portalen. Op het eerste gezicht lijkt het "zomaar een websitetool", maar eronder zit een compleet applicatieframework met gebruikers, rechten, meertalige ondersteuning en een REST API.
Dit artikel legt uit wat Joomla echt is en hoe alles samenhangt. Het behandelt de basis voor website-eigenaren en redacteuren, de dagelijkse instellingen voor beheerders en de technische details voor ontwikkelaars. Je leert hoe een Joomla-site is opgebouwd, hoe de backend en frontend zich tot elkaar verhouden, hoe extensies werken en hoe Joomla 6 content beschikbaar maakt via de Web Services API.
Joomla is niet een enkel programma. Het is een framework dat veel kleine onderdelen samen laat werken.
Het doel is simpel: je Joomla goed genoeg laten begrijpen om met vertrouwen een site te plannen, te beheren en te laten groeien.
1. De basis
1.1 Wat is Joomla?
Joomla is een contentmanagementsysteem (CMS). Met een CMS maak en beheer je een website zonder zelf HTML te schrijven. Je logt in, typt je inhoud, klikt op opslaan, en het systeem bouwt de openbare pagina's voor je.
Drie feiten kenmerken Joomla:
- Het is gratis en open source, uitgebracht onder de GNU GPL-licentie.
- Het is geschreven in PHP en slaat de gegevens op in een database zoals MySQL of MariaDB.
- Het wordt onderhouden door een wereldwijde gemeenschap van vrijwilligers, niet door een enkel bedrijf.
1.2 Wat kun je ermee bouwen?
Joomla is een veelzijdig CMS. Mensen gebruiken het voor veel soorten sites:
| Soort site | Voorbeeld |
|---|---|
| Zakelijke website | Bedrijfspagina's, diensten, contactformulieren. |
| Nieuws of magazine | Veel auteurs, categorieen en tags. |
| Ledensite | Afgeschermde inhoud voor ingelogde gebruikers. |
| Meertalig portaal | Een site in meerdere talen. |
| Webapplicatie | Eigen componenten voor reserveringen, catalogi en meer. |
1.3 Joomla, WordPress en Drupal
Mensen vergelijken vaak de drie grote open source systemen. Een korte, eerlijke samenvatting:
- WordPress is het eenvoudigst om mee te starten en domineert blogs en kleine sites.
- Drupal is het flexibelst voor zeer grote, op maat gemaakte projecten, maar heeft een steilere leercurve.
- Joomla zit ertussenin. Het biedt sterke ingebouwde functies (meertaligheid, rechtenbeheer, custom fields) zonder dat je veel extra plugins nodig hebt.
Het grote voordeel van Joomla is dat veel kracht al in de core zit. Je hebt geen lange lijst met add-ons nodig om een serieuze site te bouwen.
Naar boven2. Een korte geschiedenis en de versiecyclus
2.1 Waar Joomla vandaan komt
Joomla begon in 2005 als een fork van een ouder CMS genaamd Mambo. De naam komt van het Swahili-woord Jumla, dat "alles samen" betekent. Dat idee klopt nog steeds: Joomla brengt veel onderdelen samen in een systeem.
2.2 Hoofdversies
Joomla gaat vooruit in grote releases. Elke grote versie kan veranderen hoe extensies en templates werken:
| Jaar | Versie | Wat is er veranderd? |
|---|---|---|
| 2005 | Joomla 1.0 | Afsplitsing (fork) van Mambo CMS. |
| 2008-2012 | Joomla 1.5 - 2.5 | Het klassieke tijdperk, met een zeer lange levensduur. |
| 2012 | Joomla 3.x | Bootstrap-frontend, langdurige ondersteuning en zeer breed gebruikt. |
| 2021 | Joomla 4.x | Een grote moderne aanpassing: nieuwe backend, Web Services API en code met namespaces. |
| 2023 | Joomla 5.x | Verbeteringen, hogere prestaties en schonere code. |
| 2025 | Joomla 6.x | De huidige generatie, voortbouwend op de architectuur van Joomla 4 en 5. |
2.3 Waarom versies belangrijk zijn
Twee praktische regels volgen uit de versiecyclus:
- Houd je site op een ondersteunde versie. Oude versies krijgen geen beveiligingsupdates meer.
- Plan grote upgrades op tijd, want sommige extensies hebben een update nodig om te blijven werken.
Kleine updates (bijvoorbeeld 6.0 naar 6.1) zijn meestal veilig en snel. Grote upgrades vragen eerst om een testronde op een kopie van je site.
Naar boven3. De bouwstenen van een Joomla-site
Bijna alles wat je in Joomla doet, gebruikt dezelfde kleine set bouwstenen. Zodra je deze zeven woorden kent, valt de rest van het systeem op zijn plaats.
3.1 De zeven kernbegrippen
| Begrip | Wat het is |
|---|---|
| Artikel | Een enkel stuk inhoud, een pagina met tekst en afbeeldingen. |
| Categorie | Een container die artikelen en andere items groepeert. |
| Menu | Een lijst met links die bepaalt welke pagina's bestaan en hoe bezoekers ze bereiken. |
| Module | Een klein blok inhoud rond de hoofdpagina (inlogvak, menu, laatste nieuws). |
| Component | De hoofdapplicatie die het centrale deel van een pagina vult. |
| Plugin | Achtergrondcode die op gebeurtenissen reageert en het gedrag van Joomla aanpast. |
| Template | De ontwerplaag die bepaalt hoe alles eruitziet. |
3.2 Hoe een pagina tot stand komt
Wanneer een bezoeker een pagina opent, stelt Joomla die samen uit deze onderdelen:
Menu-item bepaalt welk component en welke weergave laadt
|
Component bouwt de hoofdinhoud (bijvoorbeeld een artikel)
|
Modules voegen blokken eromheen toe (menu, zoeken, inloggen)
|
Plugins draaien tijdens het proces en kunnen de uitvoer aanpassen
|
Template verpakt alles in het siteontwerp
Dit is het allerbelangrijkste idee in Joomla: een menu-item kiest een component, de template tekent het kader, en modules vullen de ruimtes rond de inhoud.
3.3 Een kort voorbeeld
Stel je een "Nieuws"-pagina voor:
- Een menu-item van het type "Categorieblog" wijst naar de categorie Nieuws.
- Het component
com_contentleest de artikelen in die categorie. - Een module toont het hoofdmenu links, een andere toont een zoekvak.
- De template bepaalt de kleuren, lettertypen en de positie van elk blok.
4. Joomla installeren
4.1 Wat je nodig hebt
Joomla draait op een gewone webserver. De gebruikelijke vereisten zijn:
- Een webserver: Apache, NGINX of OpenLiteSpeed.
- PHP in een ondersteunde versie (Joomla 6 gebruikt een recente PHP-release).
- Een database: MySQL, MariaDB of PostgreSQL.
- HTTPS, zodat het website verkeer van bezoekers en logins versleuteld is.
Deze combinatie heet vaak een LAMP-stack (Linux, Apache, MySQL, PHP).
4.2 De installatiestappen
Een nieuwe installatie volgt een kort, begeleid proces:
1. Download Joomla en upload de bestanden naar je server.
2. Maak een lege database en een databasegebruiker aan.
3. Open de site in je browser om de webinstaller te starten.
4. Vul de sitenaam, het beheerdersaccount en de databasegegevens in.
5. Joomla maakt de tabellen aan en rondt de installatie af.
Na de installatie vraagt Joomla je de installatiemap te verwijderen. Dit is een veiligheidsstap, zodat niemand de installer opnieuw kan draaien.
4.3 Voorbeeldgegevens
Tijdens de installatie kun je voorbeeldgegevens laden. Die vullen de site met voorbeeldartikelen, menu's en modules. Dat is een goede manier om te leren, want je ziet hoe een werkende site in elkaar zit. Installeer voor een echt project juist een lege site.
Naar boven5. De backend: het beheerdersgedeelte
5.1 Twee kanten van elke Joomla-site
Elke Joomla website heeft twee delen:
- De frontend: de openbare website die je bezoekers zien.
- De backend: het besloten controlepaneel waar je de site beheert.
Je bereikt de backend door /administrator achter je siteadres te zetten:
https://example.test/administrator
5.2 De hoofdmenu's
Het bovenmenu van de backend groepeert elke taak in een paar duidelijke gebieden:
| Menu | Wat je daar beheert |
|---|---|
| Systeem | Globale instellingen, cache, gebruikers, templates, onderhoud. |
| Inhoud | Artikelen, categorieen, custom fields en de mediabibliotheek. |
| Menu's | De sitemenu's en hun menu-items. |
| Componenten | De grotere ingebouwde tools (contacten, banners, smart search en meer). |
| Gebruikers | Gebruikersaccounts, groepen en toegangsniveaus. |
5.3 Het Home dashboard
Na het inloggen kom je op het Home dashboard. Het toont snelkoppelingen, voorbeeldwidgets en belangrijke meldingen zoals beschikbare updates. Behandel de updatemelding als een klus die af moet, niet als een bericht om te negeren.
Naar boven6. De frontend en Templates
6.1 Wat een Template doet
Een template bepaalt het uiterlijk van je site: kleuren, lettertypen, witruimte en waar elk blok komt. Dezelfde inhoud kan er totaal anders uitzien onder twee templates, omdat de inhoud en het ontwerp gescheiden blijven.
6.2 Moduleposities
Templates definieren benoemde moduleposities, zoals sidebar-right of top-a. Vervolgens wijs je modules aan deze posities toe. Zo bepaal je bijvoorbeeld dat het inlogvak rechtsboven verschijnt en het menu links.
Templatepositie "menu" → module Hoofdmenu
Templatepositie "sidebar" → module Laatste Artikelen
Templatepositie "footer" → module Copyright
6.3 Site- en beheerderstemplates
Joomla heeft aparte templates voor de twee kanten van de site:
- Een sitetemplate voor de openbare frontend.
- Een beheerderstemplate voor de backend.
Je kunt meerdere templates installeren en de actieve wisselen, of een andere template toewijzen aan specifieke menu-items.
6.4 Overrides
Templates kunnen overrides bevatten: kopieen van de standaard lay-outbestanden van Joomla, geplaatst in de template. Met overrides verander je hoe een component eruitziet zonder de corebestanden van Joomla te bewerken, zodat je wijzigingen updates overleven. We komen hierop terug in het ontwikkelaarsgedeelte.
Naar boven7. Extensies: hoe je Joomla's functionaliteit kunt uitbreiden
Je breidt Joomla uit door extensies te installeren. Een extensie is een pakket dat je in de backend uploadt. De verschillende types kennen voorkomt veel verwarring.
7.1 De vijf belangrijkste extensietypes
| Type | Rol | Prefix |
|---|---|---|
| Component | Een volledige applicatie; vult het hoofdgedeelte van de pagina. | com_ |
| Module | Een klein blok op een templatepositie. | mod_ |
| Plugin | Achtergrondcode die op gebeurtenissen reageert. | plg_ |
| Template | De ontwerplaag van de site of de backend. | tpl_ |
| Taal | Een vertaalpakket voor de interface. | lang |
Er bestaan nog twee types voor ontwikkelaars en pakketmakers:
- Library: gedeelde PHP-code die meerdere extensies kunnen hergebruiken, in plaats van dat elke extensie een eigen kopie meelevert.
- Package: een bundel die in een keer meerdere extensies installeert. Een webshop arriveert bijvoorbeeld vaak als een package met daarin het component, de modules en de plugins samen.
7.2 Hoe ze samenwerken
Een echte functie gebruikt vaak meerdere types tegelijk. Een webshop kan bijvoorbeeld bestaan uit:
- Een component voor de productcatalogus en het afrekenen.
- Een module voor het blok "winkelwagen".
- Een plugin die productresultaten toevoegt aan Smart Search.
7.3 Extensies veilig installeren
Je installeert extensies via Systeem → Installeren → Extensies. Twee veiligheidsregels zijn belangrijk:
- Installeer alleen extensies uit bronnen die je vertrouwt. Een extensie draait met volledige toegang tot je site.
- Kies extensies die actief worden onderhouden en je Joomla-versie ondersteunen.
8. Gebruikers, groepen en toegangsbeheer
8.1 De drie ACL-begrippen
Joomla heeft een krachtig Access Control List-systeem (ACL). Het is opgebouwd uit drie ideeen die samenwerken:
| Begrip | Vraag die het beantwoordt |
|---|---|
| Gebruikersgroep | Tot welke groep behoort deze gebruiker? |
| Toegangsniveau | Welke groepen mogen dit item zien? |
| Rechten | Wat mag een groep doen (aanmaken, bewerken, verwijderen)? |
8.2 Standaard gebruikersgroepen
Joomla levert een kant-en-klare set groepen, geordend als een boom. Elke groep erft van zijn ouder:
Public
+-- Registered
| +-- Author
| +-- Editor
| +-- Publisher
+-- Manager
+-- Administrator
+-- Super Users
Een Super User mag alles. Een Registered-gebruiker ziet alleen inhoud die voor ingelogde bezoekers is gereserveerd. Je kunt eigen groepen toevoegen voor elke situatie, zoals "Betalende Leden" of "Personeel".
8.3 Rechten erven van bovenaf
Rechten stromen naar beneden, van globale instellingen naar het enkele item:
Globale Configuratie
+-- Component (bijvoorbeeld com_content)
+-- Categorie
+-- Artikel
Op elk niveau kan een recht Inherit, Allowed of Denied zijn. Een "Denied" hoog in de boom kun je lager niet meer overschrijven. Een handige regel: weiger op het hoogste niveau dat kan, sta toe op het laagste niveau dat moet.
Naar boven9. Meertalig Joomla
9.1 Ingebouwd in de core
Een van de sterkste functies van Joomla is dat meertalige ondersteuning is ingebouwd. Je hebt geen betaalde extensie nodig om een site in meerdere talen te draaien.
9.2 Hoe het werkt
Een meertalige site gebruikt een paar samenhangende onderdelen:
- Installeer een taalpakket per taal.
- Activeer de plugin Language Filter.
- Maak contenttalen aan en koppel elk artikel, elke categorie en elk menu aan een taal.
- Voeg associaties toe zodat Joomla weet dat de Engelse en Nederlandse versie van een pagina bij elkaar horen.
9.3 De taalkeuze
Een kleine module Language Switcher laat bezoekers tussen talen kiezen. Dankzij associaties stuurt die hen naar de bijbehorende vertaalde pagina in plaats van terug naar de homepage.
Naar boven10. Onder de motorkap (ontwikkelaarsblik)
10.1 De mappenstructuur
Een Joomla-installatie heeft een heldere mappenstructuur. De belangrijkste mappen zijn:
administrator/ de backendapplicatie en adminonderdelen van componenten
api/ de Web Services (REST) applicatie
components/ het frontendgedeelte van elk component
modules/ sitemodules
plugins/ alle plugins, gegroepeerd per type
templates/ sitetemplates
libraries/ de Joomla- en Framework-corecode
language/ geinstalleerde taalpakketten
media/ openbare CSS, JavaScript en afbeeldingen
images/ je geuploade media
cache/, tmp/, logs/ werkmappen
10.2 De database
Joomla bewaart bijna alles in de database. Tabelnamen gebruiken een instelbare prefix, in code geschreven als #__ (bijvoorbeeld #__content voor artikelen). Met de prefix kunnen meerdere Joomla-sites veilig een database delen.
Een paar coretabellen laten het patroon zien:
| Tabel | Bewaart |
|---|---|
#__content |
Artikelen. |
#__categories |
Categorieen voor elk component. |
#__menu |
Menu-items. |
#__modules |
Modules en hun instellingen. |
#__extensions |
Elke geinstalleerde extensie. |
#__users |
Gebruikersaccounts (wachtwoorden worden als hash opgeslagen, nooit als platte tekst). |
#__user_usergroup_map |
Welke gebruiker bij welke groep hoort. |
#__assets |
De ACL-regels; dit is de tabel achter elk recht. |
De tabel #__assets is de stille motor van het toegangsbeheer van Joomla. Elk component, elke categorie en elk artikel heeft een bijbehorende assetrij die de rechtenregels als JSON opslaat, geordend als een geneste boom zodat rechten van ouder naar kind kunnen erven. Als ACL "zich niet gedraagt", ligt de oorzaak bijna altijd hier.
10.3 Het MVC-patroon
Joomla-componenten volgen het Model-View-Controller-patroon (MVC). Dit verdeelt het werk in drie rollen:
- Het Model praat met de database en houdt de gegevens bij.
- De View zet die gegevens om in HTML, JSON of een ander formaat.
- De Controller reageert op het verzoek en koppelt de twee aan elkaar.
Moderne Joomla-code is volledig namespaced en gebruikt een factory om componenten te laden. Een typisch voorbeeld:
use Joomla\CMS\Factory;
$app = Factory::getApplication();
$factory = $app->bootComponent('com_content')->getMVCFactory();
$model = $factory->createModel('Articles', 'Site', ['ignore_request' => true]);
$items = $model->getItems();
10.4 Service providers en dependency injection
Moderne Joomla-extensies bouwen hun objecten niet meer via globale toegang. Elke extensie levert een service provider die zijn klassen registreert in een Dependency Injection-container (DI). Joomla vraagt de container vervolgens om wat het nodig heeft, en de container koppelt de onderdelen aan elkaar.
Voor een component is het startpunt een bestand:
com_example/
services/
provider.php registreert het component in de DI-container
src/
Controller/
Model/
View/
Het voordeel is schonere, testbare code: klassen verklaren waar ze van afhankelijk zijn in plaats van het zelf op te halen. Dit is ook waarom moderne Joomla-code de PSR-standaarden volgt en Composer kan gebruiken voor externe libraries.
10.5 De database abstraction layer
Ontwikkelaars schrijven in Joomla zelden ruwe SQL-strings. In plaats daarvan gebruiken ze de Database Abstraction Layer en de query builder, die veilige, portable queries produceert:
$db = $this->getDatabase();
$query = $db->getQuery(true)
->select($db->quoteName(['id', 'title']))
->from($db->quoteName('#__content'))
->where($db->quoteName('state') . ' = :state')
->bind(':state', 1, ParameterType::INTEGER);
$db->setQuery($query);
$rows = $db->loadObjectList();
De query builder quote namen, bindt parameters en past zich aan de gebruikte database aan. Dit voorkomt SQL-injectie en laat dezelfde code werken op MySQL en MariaDB.
10.6 Gebeurtenissen en plugins
Joomla gebruikt een gebeurtenissysteem dat wordt aangestuurd door een event dispatcher. Op belangrijke momenten vuurt het een gebeurtenis af, en plugins luisteren ernaar. Zo vuurt onContentPrepare af voordat inhoud wordt getoond, zodat een plugin de tekst kan aanpassen. Zo blijft Joomla flexibel zonder dat iemand de core hoeft te bewerken.
10.7 Snelheid en caching
Joomla kan de gegenereerde uitvoer cachen om pagina's sneller te maken. Het biedt page cache, view cache en module cache. Vergeet niet de cache te legen nadat je inhoud of instellingen wijzigt.
Op drukke sites combineer je Joomla's eigen cache met afstemming op serverniveau:
- OPcache: een PHP-instelling die gecompileerde code in het geheugen houdt, zodat PHP niet bij elk verzoek opnieuw compileert.
- Redis of Memcached: snelle opslag in het geheugen die Joomla voor cache en sessies kan gebruiken in plaats van bestanden.
- Een CDN: levert afbeeldingen, CSS en JavaScript vanaf servers dicht bij de bezoeker.
- Afbeeldingsoptimalisatie: kleinere afbeeldingen betekenen snellere pagina's en betere scores.
- Database-indexering: op grote sites houden goede indexen de queries snel.
11. De Web Services API (Joomla zonder voorkant)
11.1 Joomla als backend voor andere apps
Sinds Joomla 4 bevat de core een Web Services API. Dit is een REST-interface waarmee andere programma's Joomla-gegevens kunnen lezen en schrijven. Je kunt Joomla puur als contentbackend gebruiken voor een mobiele app of een aparte frontend.
11.2 Authenticatie met een token
API-aanroepen gebruiken een token in plaats van een gewone login. Je maakt in de backend een token aan voor een gebruiker en stuurt het mee in een header:
curl -H "X-Joomla-Token: <jouw-token>" \
https://example.test/api/index.php/v1/content/articles
11.3 Veelgebruikte endpoints
De API weerspiegelt de structuur van de corecomponenten:
| Endpoint | Geeft terug |
|---|---|
/v1/content/articles |
Een lijst met artikelen. |
/v1/content/articles/42 |
Een artikel op id. |
/v1/content/categories |
Contentcategorieen. |
/v1/users |
Gebruikersaccounts. |
/v1/menus |
Menu's en menu-items. |
11.4 De Joomla CLI
Joomla levert ook een commandoregeltool voor servertaken, zoals het legen van de cache of het draaien van geplande taken:
php cli/joomla.php core:check-updates
php cli/joomla.php cache:clean
Dit is handig voor automatisering en om taken te draaien zonder de backend te openen.
Naar boven12. Beveiliging en onderhoud
12.1 Updates zijn je eerste verdediging
De allerbelangrijkste beveiligingstaak is om Joomla en alle extensies up-to-date te houden. De meeste gehackte Joomla-sites draaien verouderde software met bekende lekken. Joomla toont updates op het dashboard en kan zichzelf met een klik bijwerken.
12.2 Een eenvoudige onderhoudsroutine
| Hoe vaak | Taak |
|---|---|
| Wekelijks | Controleer op updates voor Joomla en extensies; voer ze door. |
| Wekelijks | Bevestig dat er een recente back-up bestaat die werkt. |
| Maandelijks | Controleer gebruikers, vooral Super Users, en verwijder ongebruikte accounts. |
| Maandelijks | Bekijk de Action Logs op ongewone activiteit. |
12.3 Back-ups
Een back-up is een volledige kopie van je bestanden en database die je na een probleem kunt terugzetten. Test altijd of een back-up echt terugzet; een ongeteste back-up is geen back-up. Bewaar minstens een kopie op een andere locatie buiten de server.
12.4 Extra bescherming
- Gebruik sterke wachtwoorden en activeer tweestapsverificatie voor backendgebruikers.
- Serveer de hele site via HTTPS.
- Voeg beveiligingsheaders toe (Joomla heeft een ingebouwde HTTP Headers-plugin).
- Verwijder extensies die je niet meer gebruikt; ongebruikte code is nog steeds een risico.
12.5 Hoe Joomla je standaard beschermt
Veel beveiliging zit al in de core, zodat goed geschreven extensies die gratis krijgen:
| Mechanisme | Wat het doet |
|---|---|
| CSRF-tokens | Elk formulier draagt een eenmalige token, zodat aanvallers geen verzoeken namens een gebruiker kunnen vervalsen. |
| Invoerfiltering | Joomla schoont binnenkomende verzoekgegevens op via de inputklasse in plaats van ze ruw te vertrouwen. |
| Wachtwoord-hashing | Wachtwoorden worden als sterke eenrichtings-hash opgeslagen, nooit als leesbare tekst. |
| Sessiebescherming | Sessies worden gevalideerd om kaping en fixatie te beperken. |
Het kernpunt voor ontwikkelaars: gebruik de input-, formulier- en databasetools van Joomla. Die passen deze bescherming automatisch toe. Zelfgeschreven omwegen eromheen zijn waar de meeste kwetsbaarheden in extensies vandaan komen.
Naar boven13. SEO en metadata
13.1 Zoekmachinevriendelijke URL's
Joomla kan schone, leesbare URL's maken. In Systeem → Globale Configuratie → Site activeer je:
- Zoekmachinevriendelijke URL's: maakt van
index.php?option=com_content&id=42een/nieuws/joomla-6-uitgebracht. - URL Rewriting: verwijdert
index.phpuit het adres (vereist rewrite-regels op de server).
13.2 Metadata
Elk artikel, elke categorie en elk menu-item kan een metatitel en metabeschrijving dragen. Joomla ondersteunt ook een globale metadata-instelling en laat je de robots-richtlijn per pagina sturen (bijvoorbeeld index, follow of noindex).
13.3 Ingebouwde SEO-hulpmiddelen
- Categorieen en Tags vormen natuurlijke themaclusters en schone URL-paden.
- Het Redirect component vangt kapotte links op en stuurt bezoekers naar de juiste pagina.
- Sitemap-ondersteuning is beschikbaar via extensies, zodat zoekmachines elke pagina vinden.
Goede URL's en eerlijke metadata doen het meeste SEO-werk. De rest is goede inhoud.
Naar boven14. Veelgemaakte fouten en valkuilen
14.1 Joomla behandelen als een statische site
Symptoom: een redacteur probeert elke pagina als een lang artikel te bouwen en plakt ruwe HTML voor de lay-out.
Oplossing: gebruik menu's, categorieen en modules. Laat Joomla pagina's samenstellen, zodat het ontwerp consistent en makkelijk aanpasbaar blijft.
14.2 Updates overslaan
Symptoom: de site draait jarenlang een oude versie en wordt dan gehackt of breekt bij een serverupgrade.
Oplossing: update volgens een schema. Test grote upgrades eerst op een kopie en voer ze daarna door op de live site.
14.3 Corebestanden bewerken
Symptoom: iemand wijzigt een Joomla-corebestand om een lay-out aan te passen ("core hack" genoemd), en de volgende update wist die wijziging.
Oplossing: gebruik template-overrides en plugins. Bewerk nooit rechtstreeks corebestanden.
14.4 Te veel extensies installeren
Symptoom: de site is traag en elke update is riskant omdat tientallen add-ons kunnen breken.
Oplossing: gebruik de core waar het kan. Elke extra extensie is meer code om te vertrouwen, bij te werken en te beveiligen.
14.5 Geen back-up voor wijzigingen
Symptoom: een update of bewerking gaat mis en er is geen weg terug.
Oplossing: maak een geteste back-up voor elke update of grote wijziging.
Naar boven15. Best practices
Als je maar een paar dingen uit dit artikel onthoudt, onthoud dan deze:
- Leer eerst de zeven bouwstenen; de rest van Joomla volgt daaruit.
- Houd Joomla en elke extensie op een ondersteunde, bijgewerkte versie.
- Bouw pagina's met menu's, componenten en modules, niet met handgeschreven HTML.
- Gebruik template-overrides in plaats van corebestanden te bewerken.
- Geef de voorkeur aan de sterke core-functies boven het stapelen van extensies.
- Maak een geteste back-up voor elke update of grote wijziging.
- Plan je categorieen, menu's en talen voordat je de site met inhoud vult.
16. In het kort
BACKEND https://jouwsite/administrator
NIEUW ARTIKEL Inhoud → Artikelen → Nieuw
NIEUW MENU Menu's → Beheren → Menu Toevoegen
MODULE Systeem → Sitemodules → Nieuw
EXTENSIE Systeem → Installeren → Extensies
GEBR. & ACL Gebruikers → Beheren / Groepen / Toegangsniveaus
TEMPLATE Systeem → Sitetemplates
SEF URL'S Systeem → Globale Configuratie → Site
UPDATES Systeem → Bijwerken → Joomla / Extensies
API /api/index.php/v1/... met X-Joomla-Token
CLI php cli/joomla.php <commando>
Naar boven17. Samenvatting
Joomla is veel meer dan een tool om webpagina's te typen. Het is een compleet systeem dat veel onderdelen samenbrengt:
- Inhoud: artikelen, categorieen en tags.
- Structuur: menu's en componenten die bepalen wat elke pagina doet.
- Ontwerp: templates, moduleposities en overrides.
- Mensen: gebruikers, groepen en een diepgaand toegangsbeheer.
- Bereik: ingebouwde meertaligheid en een SEO-vriendelijke router.
- Integratie: een REST API en een CLI voor headless en geautomatiseerd gebruik.
Omdat zoveel kracht in de core zit, blijft een goed opgezette Joomla-site jarenlang onderhoudbaar. De sleutel is begrijpen hoe de onderdelen samenwerken, alles bijgewerkt houden en Joomla je pagina's laten samenstellen in plaats van tegen het systeem te vechten.
Plan je een nieuwe Joomla-site, migreer je vanaf een oudere versie, of vermoed je dat je huidige opzet je tegenhoudt? Dan loont het om het fundament vroeg goed te krijgen. Een heldere structuur vandaag bespaart later veel reparatiewerk.
Naar boven

Joomla specialist en Linux admin voor snelle, veilige en schaalbare websites.


