Joomla in ontwikkeling: slimmere moduletoewijzing in Joomla – waarom overerving belangrijk is
Joomla in ontwikkeling: slimmere moduletoewijzing in Joomla – waarom overerving belangrijk is
Joomla staat bekend om zijn flexibiliteit. Het menusysteem is krachtig, de module-architectuur solide en in handen van ervaren ontwikkelaars kan het schalen van eenvoudige websites tot complexe platformen. Maar wie veel heeft gewerkt met meerlaagse menu’s en meerdere modules, kent waarschijnlijk een terugkerende frustratie: het ontbreken van module-overerving.
Joomla maakt het mogelijk om modules toe te wijzen aan specifieke menu-items, wat nauwkeurige controle geeft over wat op elke pagina verschijnt. Dat is een sterke eigenschap, maar naarmate een site groeit, kan het ook een onderhoudslast worden.
Een veelvoorkomend scenario
Stel je een website voor met een menu op twee niveaus. Op het hoogste niveau staat People, met submenu’s zoals Faculty, Staff en Administration. Wanneer een bezoeker een van deze pagina’s bekijkt, toont de linkerzijbalk twee modules:
-
Een Contact Us-module
-
Een menumodule met de People-navigatie
De navigatie is duidelijk en consistent.
Dan vraagt de klant om Graduate Students toe te voegen onder People. Je maakt het menu-item aan, koppelt het aan een artikel en test de pagina. De content verschijnt, maar de zijbalk is verdwenen. Geen contactmodule. Geen submenu.
Er is niets kapot. Het probleem is simpel: het nieuwe menu-item is niet handmatig gekoppeld aan die modules. Als je lang genoeg met Joomla werkt, heb je dit vast vaker gezien.
De kosten van handmatige toewijzing
De oplossing is eenvoudig: open de Modulebeheerder, zoek de relevante modules en vink het nieuwe menu-item aan. Maar echte websites zijn zelden zo simpel.
Wat als een pagina meerdere modules heeft? Wat als verschillende secties verschillende logo’s of banners gebruiken? Het toevoegen van één menu-item kan uitmonden in het controleren van talloze moduletoewijzingen. Er wordt bijna altijd iets gemist, en klanten merken het meteen wanneer pagina’s incompleet of inconsistent zijn.
Dit is precies het probleem dat overerving oplost.
Wat betekent module-overerving?
Module-overerving is een functionaliteit waar momenteel aan wordt gewerkt voor Joomla 6.2.
Overerving is een bekend concept in softwareontwikkeling: onderliggende elementen nemen gedrag over van hun parent, tenzij dit expliciet wordt overschreven. Toegepast op Joomla-modules betekent dit:
Als een module is toegewezen aan een bovenliggend menu-item, kan deze automatisch verschijnen op onderliggende submenu-items.
In het eerdere voorbeeld betekent dit dat als de Contact Us- en People-modules zijn gekoppeld aan het menu-item People, de submenu’s (Faculty, Staff, Administration en toekomstige items zoals Graduate Students) deze automatisch overnemen.
Geen extra stappen. Geen ontbrekende modules.
Overerving is optioneel
Module-overerving is niet verplicht. Het is een optie die je per module kunt inschakelen bij het toewijzen aan menu-items.
Als een module slechts op één pagina moet verschijnen, kun je die nog steeds expliciet toewijzen zoals nu. Overerving wordt alleen toegepast wanneer een ontwikkelaar er bewust voor kiest. Zo blijft Joomla flexibel, terwijl onnodig handmatig werk wordt verminderd.
Hoe overerving werkt
Bij het toewijzen van een module kun je kiezen uit de volgende opties:
Overerven (één niveau)
De module wordt toegewezen aan het geselecteerde menu-item en automatisch toegepast op de directe onderliggende menu-items (één niveau diep). Dit geldt voor bestaande én toekomstige items.

Overerven (alles)
De module wordt toegepast op alle onderliggende menu-items, ongeacht de diepte. Dit is ideaal voor navigatie, zijbalken of branding-elementen die consistent zichtbaar moeten zijn binnen een hele sectie.

Overerving werkt dynamisch. Als een menu-item wordt toegevoegd, verplaatst naar een andere parent of naar een ander menu, herberekent Joomla automatisch de overerving en past het de moduletoewijzingen aan — zonder handmatige aanpassingen.
Wanneer wordt het toegepast?
Module-overerving wordt toegepast op het moment dat een module of menu-item wordt opgeslagen, niet tijdens het laden van de pagina. Omdat de logica al bij configuratiewijzigingen wordt verwerkt, heeft dit geen impact op de laadtijd van pagina’s. De databasequeries voor het tonen van modules aan de voorkant blijven ongewijzigd, waardoor de prestaties behouden blijven.
Voordelen in één oogopslag
-
Voorkomt dat modules verdwijnen bij nieuwe submenu-items
-
Vermindert repetitieve handmatige toewijzingen
-
Verbetert consistentie in layout, navigatie en branding
-
Vereenvoudigt onderhoud naarmate menu’s groeien
-
Versnelt doorontwikkeling en updates
Kortom: module-overerving neemt een veelvoorkomend pijnpunt weg voor Joomla-ontwikkelaars zonder controle te verliezen.
Joomla vooruit helpen
Joomla heeft altijd flexibiliteit en keuzevrijheid centraal gesteld. Module-overerving bouwt hierop voort door modulegedrag beter af te stemmen op de menustructuur — iets wat ontwikkelaars intuïtief al verwachten.
Menu’s hebben al structuur. Content volgt al hiërarchie. Modules die hetzelfde doen, is een logische en praktische volgende stap.
De voorgestelde implementatie is te bekijken in de officiële Joomla-repository:
https://github.com/joomla/joomla-cms/pull/47570
Feedback is welkom om deze functionaliteit nog waardevoller te maken voor de Joomla-community.