Terug naar hoofdinhoud
Config in Joomla
Op deze pagina
# Topics

Config in Joomla

07 juni 2026

Elke Joomla-site heeft een scherm dat bijna alles stilletjes regelt: Systeem → Globale configuratie. Het bepaalt je sitenaam, je SEF-URL's, je cache, je mailserver, je standaardrechten en tientallen andere instellingen. De component achter dat scherm heet com_config.

De meeste mensen openen Globale configuratie eenmalig bij de installatie, wijzigen een paar opties en denken er daarna nooit meer aan. Maar com_config is interessanter dan het lijkt. Het is niet een formulier maar twee taken: het beheert de globale instellingen van de hele site, en het rendert ook het Opties-scherm dat elke andere component voor zijn eigen instellingen gebruikt.

De kleine component die de instellingen van je site beheert - zowel de globale als die per component.

Dit artikel legt uit hoe com_config echt werkt. Het behandelt de basis voor eigenaren en redacteuren, de tabbladen en de dagelijkse instellingen voor beheerders, en de technische details voor ontwikkelaars: waar instellingen worden opgeslagen, hoe ze in code worden gelezen, en waarom Machtigingen en Tekstfilters zich anders gedragen dan de rest.

1. De basis

1.1 Wat is com_config?

Een Joomla component is een kleine applicatie die binnen Joomla draait. De meeste componenten gaan ergens over: com_content gaat over artikelen, com_users over gebruikers, com_menus over menu's. com_config gaat over instellingen.

Het heeft twee duidelijk gescheiden taken:

  • Globale configuratie - de site-brede instellingen die je bereikt via Systeem → Globale configuratie.
  • Component-opties - de instellingen per component die je bereikt door op de knop Opties rechtsboven in de werkbalk van een component te klikken (bijvoorbeeld Artikelen → Opties).

Beide schermen worden getekend door dezelfde component. Dat is het nuttigste om te weten over com_config: de Opties-knop die je overal in de backend ziet, is geen onderdeel van elke component. Het is com_config dat het werk voor ze doet.

1.2 Waarom het belangrijk is

Globale configuratie is de regelkamer van een Joomla-site. Een verkeerde waarde hier breekt niet een artikel of een menu - het verandert het gedrag van de hele site:

  • Zet Offline aan en elke bezoeker ziet een onderhoudspagina.
  • Schakel Zoekmachinevriendelijke URL's om en elke link op de site verandert van vorm.
  • Wijzig de cache en de site kan veel sneller worden, of verouderde inhoud gaan tonen.
  • Pas het tabblad Machtigingen aan en je verandert wat elke gebruikersgroep mag doen.

Omdat de inzet hoog is, loont het de moeite om te begrijpen waar elke instelling woont en wat ze leest.

1.3 Waar je het vindt

Er is een hoofdingang in het backend-menu:

Systeem -> Instellen -> Globale configuratie

En er is de knop Opties, herhaald in de werkbalk van bijna elke component. Beide leiden naar com_config; alleen de data die ze bewerken verschilt.

Naar boven

2. Waar com_config is

2.1 Twee helften: backend en frontend

Net als verschillende core-componenten heeft com_config zowel een administrator-helft als een site- (frontend-) helft:

public_html/administrator/components/com_config/   (de backend-formulieren)
public_html/components/com_config/                 (frontend-bewerking)

De backend-helft is wat de meeste mensen bedoelen als ze "Globale configuratie" zeggen. De frontend-helft is kleiner en komt later aan bod in sectie 10.

2.2 De backend-mappenstructuur

Binnen de administrator-component vind je een nette, moderne Joomla 6-indeling:

administrator/components/com_config/
+-- forms/
|     application.xml      (het formulier Globale configuratie)
+-- services/              (DI-container-bedrading)
+-- src/
|   +-- Controller/        (Application- + Component-controllers)
|   +-- Model/
|   |     ApplicationModel.php   (slaat Globale configuratie op)
|   |     ComponentModel.php     (slaat component-opties op)
|   +-- View/
|   +-- Field/             (speciale velden: Filters, ConfigComponents)
+-- tmpl/                  (view-templates)
+-- config.xml            (de eigen opties van com_config)
+-- access.xml            (de eigen rechten van com_config)

Let op forms/application.xml. Dat ene bestand definieert elk veld op het scherm Globale configuratie. De tabbladen die je ziet, zijn de <fieldset>-groepen erin.

2.3 De URL's

De twee schermen verwijzen naar twee views:

Globale configuratie:
/administrator/index.php?option=com_config&view=application

Component-opties (voorbeeld: com_content):
/administrator/index.php?option=com_config&view=component&component=com_content

De tweede URL is precies waar de knop Opties naar linkt. De parameter component= vertelt com_config wiens instellingen het moet laden.

Naar boven

3. De tabbladen van Globale configuratie

Globale configuratie groepeert zijn instellingen in tabbladen. Hier is wat elk tabblad regelt in Joomla 6.

3.1 Site

  • Sitenaam - de naam die wordt gebruikt in paginatitels, e-mails en de offline-pagina.
  • Site offline + Offline-bericht en Offline-afbeelding - de onderhoudsmodus.
  • Standaardeditor, Standaard toegangsniveau, Standaard lijstlimiet en Standaard feedlimiet.
  • SEO-instellingen - Zoekmachinevriendelijke URL's, URL-herschrijven, Achtervoegsel toevoegen aan URL, Unicode-aliassen en "Sitenaam opnemen in paginatitels".
  • Cookie-instellingen en de globale Metadata-instellingen (standaard meta-omschrijving, robots, auteursinfo).

3.2 Systeem

  • Debug-instellingen - Debug systeem en Debug taal.
  • Cache-instellingen - cache uit / conservatief / progressief, cache-handler en cache-tijd.
  • Sessie-instellingen - sessie-handler, sessieduur en gedeelde sessies.
  • Webservices-instellingen - de CORS-opties voor de REST-API.

3.3 Server

  • Server-instellingen - pad naar de tijdelijke map, GZIP-paginacompressie, Foutrapportage en HTTPS forceren.
  • Locatie-instellingen - de standaardtijdzone van de site.
  • Database-instellingen - host, gebruiker, naam, tabel-prefix en SSL-opties (meestal alleen-lezen na de installatie).
  • Mailinstellingen - mailer (PHP mail / Sendmail / SMTP), afzenderadres en -naam, en SMTP-host en -inloggegevens.
  • Proxy-instellingen - optionele uitgaande proxy voor de server.

3.4 Machtigingen

Dit tabblad stelt de standaardrechten in voor elke gebruikersgroep, voor de hele site. Het is de top van de ACL-overervingsketen. Alles wat je hier instelt, wordt overgeerfd door elke categorie, component en item, tenzij iets specifiekers het overschrijft. Sectie 9 legt uit waar deze waarden worden opgeslagen.

3.5 Tekstfilters

Dit tabblad regelt welke HTML elke gebruikersgroep mag opslaan. De opties lopen van Geen filtering (voor Super Users) tot een Standaard zwarte lijst, een eigen Witte lijst, of helemaal Geen HTML. Het is je belangrijkste verdediging tegen een redacteur die gevaarlijke opmaak plakt.

Naar boven

4. configuration.php: het bestand met globale instellingen

4.1 Een bestand in de hoofdmap van de site

De waarden van Globale configuratie worden niet in de database opgeslagen. Ze staan in een enkel PHP-bestand in de hoofdmap van je Joomla-site:

public_html/configuration.php

Het bestand definieert een klasse, historisch JConfig genoemd:

<?php
class JConfig
{
    public $sitename = 'Mijn Joomla-site';
    public $editor = 'tinymce';
    public $sef = '1';
    public $sef_rewrite = '1';
    public $caching = '0';
    public $cache_handler = 'file';
    public $cachetime = '15';
    public $offline = '0';
    public $dbtype = 'mysqli';
    public $host = 'localhost';
    public $db = 'joomla';
    public $dbprefix = 'abcde_';
    public $mailer = 'smtp';
    public $secret = 'een-lange-willekeurige-string';
    public $tmp_path = '/pad/naar/tmp';
    public $log_path = '/pad/naar/administrator/logs';
    // ...nog veel meer...
}

Elke eigenschap komt overeen met een veldnaam in forms/application.xml. Wanneer Joomla opstart, laadt het dit bestand en leest het de instellingen eruit.

4.2 De secret-waarde

Een belangrijke eigenschap is $secret. Joomla genereert deze tijdens de installatie en toont hem nooit in het formulier. Hij wordt gebruikt om tokens te ondertekenen en te beschermen tegen CSRF. Behandel hem als een wachtwoord: zet hem nooit in een openbare repository, en als hij lekt, wijzig hem dan.

4.3 Hoe het bestand wordt geschreven

Wanneer je op Opslaan klikt bij Globale configuratie, bewerkt het model ApplicationModel het bestand niet regel voor regel. Het bouwt de volledige set waarden op in een Registry-object en exporteert die terug als een PHP-klasse:

$configuration = $config->toString('PHP', [
    'class'      => 'JConfig',
    'closingtag' => false,
]);

// daarna schrijft het naar JPATH_CONFIGURATION . '/configuration.php'

Daarom is het handmatig bewerken van configuration.php alleen veilig wanneer de site verder ongebruikt is: de volgende keer Opslaan vanuit de backend herschrijft het hele bestand op basis van de formulierwaarden.

Naar boven

5. Component-opties: hetzelfde formulier, een andere bron

5.1 De knop Opties

Open Artikelen, Contacten of een andere component en kijk naar de werkbalk rechtsboven. De knop Opties opent een instellingenscherm dat er precies uitziet als Globale configuratie. Het is dezelfde component com_config, dit keer in view=component.

5.2 Waar de velden vandaan komen

Voor Globale configuratie komen de velden uit het eigen forms/application.xml van com_config. Voor component-opties komen de velden uit het eigen config.xml van de betreffende component. Bijvoorbeeld:

administrator/components/com_content/config.xml

Dat bestand definieert de optievelden die je voor Artikelen ziet: standaardlay-out, of de auteur wordt getoond, het linkgedrag, integratie-instellingen, enzovoort. com_config laadt die XML eenvoudigweg en rendert hem.

5.3 Waar component-opties worden opgeslagen

Anders dan Globale configuratie worden component-opties wel in de database opgeslagen. Ze staan als een enkele JSON-string in de kolom params van de tabel #__extensions:

SELECT name, params
  FROM jos_extensions
 WHERE element = 'com_content' AND type = 'component';

De waarde van params ziet eruit als compacte JSON:

{"show_title":"1","link_titles":"1","show_intro":"1","info_block_position":"0", ...}

Er zijn dus twee opslaglocaties, afhankelijk van welk scherm je gebruikte:

SchermOpgeslagen inFormaat
Globale configuratie configuration.php PHP-klasse JConfig
Component-opties #__extensions.params JSON-string
Naar boven

6. De configuratiehierarchie: welke waarde wint

6.1 Dezelfde instelling op meerdere plaatsen

Veel instellingen bestaan op meer dan een niveau. Neem "Auteur tonen" in com_content: er is een component-brede standaard in Artikelen → Opties, maar een categorie kan die overschrijven, een menu-item kan dat weer overschrijven, en een enkel artikel kan alles eronder overschrijven. Joomla laat de brede standaard bovenaan staan en laat specifiekere niveaus die vervangen. com_config bewerkt de bovenste twee niveaus - Globale configuratie en Component-opties - maar het helpt om de hele keten te zien.

6.2 De volgorde van voorrang

Van het meest algemene niveau naar het meest specifieke:

Globale configuratie         (breedste standaard)
  -> Component-opties        (com_x Opties: de hele component)
    -> Categorie-instellingen (opties op een categorie)
      -> Menu-item-instellingen (tabblad Opties van een menu-item)
        -> Item-instellingen     (het individuele artikel, contact, ...)

De regel is eenvoudig: de meest specifieke waarde die niet op "Globaal gebruiken" staat, wint. De meeste optievelden staan standaard op Globaal gebruiken, wat betekent "hier niet overschrijven - terugvallen op het niveau erboven". Pas wanneer je een expliciete Ja of Nee kiest, neemt dat niveau het over.

6.3 Waarom een instelling genegeerd lijkt

Deze keten is de gebruikelijke reden waarom een instelling "niet werkt". Je wijzigt "Auteur tonen" in Artikelen → Opties, maar een artikel verbergt de auteur nog steeds - omdat een menu-item of dat artikel het expliciet instelt, en een specifiekere waarde verslaat altijd de component-standaard.

De oplossing is het meest specifieke niveau te vinden dat de waarde overschrijft, en die daar te wijzigen of terug te zetten op Globaal gebruiken. Werk bij twijfel van onder naar boven: controleer het item, dan zijn menu-item, dan zijn categorie, dan de component, en ten slotte Globale configuratie.

Naar boven

7. Onder de motorkap: hoe een instelling wordt gelezen

Een instelling opslaan is maar de helft van het verhaal. Ontwikkelaars moeten deze waarden in hun eigen code lezen. Joomla biedt voor elk soort een nette manier.

7.1 Een globale instelling lezen

De waarden van Globale configuratie zijn beschikbaar via het application-object:

use Joomla\CMS\Factory;

$app      = Factory::getApplication();
$siteName = $app->get('sitename');
$cache    = $app->get('caching');
$tmpPath  = $app->get('tmp_path', '/tmp');   // tweede argument is een standaard

De applicatie laadt JConfig eenmalig bij het opstarten en stelt elke eigenschap beschikbaar via get(). Je hoeft configuration.php nooit zelf in te laden.

7.2 Een component-optie lezen

Gebruik voor component-opties ComponentHelper:

use Joomla\CMS\Component\ComponentHelper;

$params    = ComponentHelper::getParams('com_content');
$showTitle = $params->get('show_title', 1);
$layout    = $params->get('layout', 'default');

Het teruggegeven object is een Joomla\Registry\Registry, dezelfde klasse die overal in Joomla wordt gebruikt voor sleutel/waarde-instellingen. Het tweede argument is opnieuw een standaardwaarde als terugval.

7.3 De twee APIs naast elkaar

Je wiltGebruik
Een globale instelling (sitenaam, cache, mail) Factory::getApplication()->get('key')
Een component-optie (Artikelen, Contacten, ...) ComponentHelper::getParams('com_x')->get('key')

Weten welke je moet gebruiken volgt rechtstreeks uit weten waar de waarde wordt opgeslagen, en dat is precies wat sectie 5 uitlegde.

Naar boven

8. Hoe com_config je instellingen opslaat

8.1 Twee modellen, twee bestemmingen

De component heeft twee modellen die het opslaan afhandelen:

  • ApplicationModel - slaat Globale configuratie op in configuration.php.
  • ComponentModel - slaat component-opties op in #__extensions.params.

Beide valideren de ingediende data tegen het bijbehorende formulier (het XML-bestand) voordat ze iets wegschrijven. Een waarde die de validatie niet doorstaat, wordt geweigerd, en daarom kan een ongeldige invoer je met een foutmelding terug naar het formulier sturen.

8.2 Een veiligheidsdetail dat de moeite waard is

Wanneer ApplicationModel configuration.php herschrijft, verwijdert het de tijdelijke waarde voor het aanmaken van een super-user en beschermt het wachtwoordvelden, zodat ze niet worden leeggemaakt door een lege formulierverzending. Het controleert ook of het configuratiebestand schrijfbaar is. Als het bestand alleen-lezen is (een veelgebruikte hardening-stap op productieservers), mislukt Opslaan met een duidelijke melding in plaats van je wijzigingen stilletjes te verliezen.

8.3 Drie mogelijke bestemmingen

Alles bij elkaar kan een enkele klik op Opslaan naar drie verschillende plaatsen schrijven, afhankelijk van het tabblad:

De meeste velden   -> configuration.php   (JConfig-klasse)
Tabblad Machtigingen -> #__assets rij 1    (kolom rules, JSON)
Tabblad Tekstfilters -> com_config params  (#__extensions, JSON)

Die laatste twee zijn speciale gevallen, en ze verrassen zelfs ervaren beheerders. Sectie 9 legt ze uit.

Naar boven

9. Machtigingen en Tekstfilters: de speciale gevallen

9.1 Machtigingen gaan naar het root-asset

Het tabblad Machtigingen schrijft niet naar configuration.php. De toegangsbeheerlijst (ACL) van Joomla wordt opgeslagen in de tabel #__assets, en de globale standaarden staan in het enkele root-asset, de rij met id = 1 en naam root.1:

SELECT id, name, rules
  FROM jos_assets
 WHERE id = 1;

De kolom rules bevat JSON zoals dit:

{"core.login.site":{"6":1},"core.admin":{"8":1},"core.manage":{"7":1}, ...}

Elke sleutel is een recht, en elk binnenste object koppelt een gebruikersgroep-id aan toestaan (1), weigeren (0) of overerven. Elk ander asset in Joomla erft van deze root, en daarom staat het tabblad Machtigingen van Globale configuratie helemaal bovenaan de ACL-keten.

Een recht op dit scherm is bijzonder: core.admin. Het is het "Super User"-recht, en het bepaalt ook wie Globale configuratie uberhaupt mag openen. Alleen leden van een groep met core.admin kunnen com_config in de backend bereiken, en daarom kun je het beter aan zo weinig mogelijk groepen toekennen.

9.2 Tekstfilters gaan naar de eigen params van com_config

Het tabblad Tekstfilters is ook bijzonder. De waarden worden opgeslagen in de params van de component com_config zelf, onder een sleutel filters:

SELECT params
  FROM jos_extensions
 WHERE element = 'com_config' AND type = 'component';

Zo is com_config een van de weinige componenten die instellingen over het gedrag van andere gebruikers in zijn eigen rij opslaat. Wanneer Joomla beslist of een redacteur een bepaalde tag mag opslaan, leest het deze filters-data.

9.3 Waarom dit ontwerp

De splitsing bestaat omdat machtigingen en filters niet echt "site-configuratie" zijn - het zijn toegangsregels. Joomla houdt ze in het ACL-systeem, zodat dezelfde regel-engine globale standaarden en overschrijvingen per item op precies dezelfde manier afhandelt. Globale configuratie is gewoon de prettigste plek om de standaarden op het hoogste niveau te bewerken.

Naar boven

10. De frontend-com_config

10.1 Bewerken zonder de backend

De site-helft van com_config (public_html/components/com_config/) drijft een paar frontend-bewerkschermen aan. De controllers zijn klein en gericht:

components/com_config/src/Controller/
+-- ModulesController.php     (frontend-modulebewerking)
+-- TemplatesController.php   (template-stijl-opties)
+-- ConfigController.php      (gebruikersaccount / config-formulier)

Dit is de machinerie achter frontend-bewerking: wanneer een ingelogde gebruiker met het juiste recht een module rechtstreeks vanaf de website bewerkt (in plaats van vanuit de backend), rendert en bewaart com_config op de site dat formulier.

Wanneer frontend-bewerking is ingeschakeld (een optie in Globale configuratie, frontediting), zien gemachtigde gebruikers bewerk-handvatten op modules. De link verwijst terug naar de site-com_config:

/index.php?option=com_config&view=modules&id=64

Dezelfde beveiligingsregels gelden als in de backend: de gebruiker moet het recht hebben om die module te bewerken, anders wordt het verzoek geweigerd.

Naar boven

11. Webservices en headless-toegang

11.1 Standaard geen openbare REST-route

Veel Joomla-componenten bieden een Webservices-route onder /api/index.php/v1/. com_config stelt Globale configuratie bewust niet beschikbaar via REST. Site-brede instellingen, database-inloggegevens en de secret-sleutel zijn precies de data die je niet bereikbaar wilt maken via een openbare API, zelfs niet met een token.

Er is dus geen eindpunt /api/index.php/v1/config om je sitenaam op afstand te wijzigen. Dit is een veilige standaard, geen ontbrekende functie.

11.2 Instellingen lezen en wijzigen in automatisering

Wanneer je instellingen vanuit een script wilt lezen of wijzigen, doe dat dan binnen de eigen applicatiecontext van Joomla, waar de ACL en validatie nog gelden:

// Binnen een Joomla CLI-applicatie of plugin
use Joomla\CMS\Factory;
use Joomla\CMS\Component\ComponentHelper;

$app  = Factory::getApplication();
echo $app->get('sitename');                       // globale instelling

$show = ComponentHelper::getParams('com_content')
            ->get('show_title');                  // component-optie

Voor component-opties kun je ook de JSON in #__extensions.params bijwerken via de database in een gecontroleerde migratie, en daarna de cache leegmaken. Bewerk Globale configuratie bij voorkeur via de backend, zodat het bestand correct wordt herschreven en wachtwoordvelden behouden blijven.

Naar boven

12. SEO en metadata

Enkele van de meest bezochte instellingen in com_config zijn de SEO- en metadata-opties op het tabblad Site. Ze verdienen een nadere blik, omdat kleine wijzigingen hier elke URL op de site raken.

12.1 De drie SEF-instellingen

InstellingVeldEffect
Zoekmachinevriendelijke URL's sef Verandert index.php?option=... in leesbare paden.
URL-herschrijven sef_rewrite Verwijdert index.php uit het pad (vereist server-herschrijfregels).
Achtervoegsel toevoegen aan URL sef_suffix Voegt .html toe aan gegenereerde URL's.

Het inschakelen van URL-herschrijven zonder een werkende .htaccess (Apache) of herschrijfregel (NGINX) geeft op elke pagina "404 Not Found". Hernoem eerst htaccess.txt naar .htaccess en schakel daarna de instelling in.

12.2 Paginatitels en metadata

  • Sitenaam opnemen in paginatitels - voegt je sitenaam voor of na elke paginatitel toe.
  • Meta-omschrijving van de site - de standaardomschrijving die wordt gebruikt wanneer een pagina geen eigen omschrijving instelt.
  • Robots - de globale standaard voor de robots-metatag (bijvoorbeeld index, follow). Wees voorzichtig: dit op noindex zetten verbergt de hele site voor zoekmachines.

Dit zijn standaarden. Menu-items, categorieen en artikelen kunnen de omschrijving en robots-waarde voor afzonderlijke pagina's overschrijven.

Naar boven

13. Veelgemaakte fouten en valkuilen

13.1 De site is plotseling offline

Symptoom: Bezoekers zien een onderhoudsbericht en kunnen de site niet bereiken.

Oplossing: Open Systeem → Globale configuratie → Site en zet Site offline op Nee. Als je ook buitengesloten bent uit de backend, bewerk dan configuration.php en zet public $offline = '0';

13.2 Elke pagina geeft 404 na het inschakelen van URL-herschrijven

Symptoom: De homepage werkt, maar elke andere link geeft een 404.

Oplossing: Je schakelde URL-herschrijven in zonder de serverregels. Hernoem htaccess.txt naar .htaccess, of voeg de overeenkomstige NGINX-regel toe, en probeer het opnieuw. Als je het niet snel kunt oplossen, zet dan public $sef_rewrite = '0'; in configuration.php.

13.3 Globale configuratie opslaan mislukt

Symptoom: Klikken op Opslaan toont een fout dat het configuratiebestand niet schrijfbaar is.

Oplossing: configuration.php is alleen-lezen (vaak 444 als hardening-stap). Maak het tijdelijk schrijfbaar (644), sla je wijzigingen op, en zet het daarna terug op alleen-lezen.

13.4 De hele site verdwijnt uit Google

Symptoom: De zoekposities dalen en pagina's worden niet meer geindexeerd.

Oplossing: Controleer de globale instelling Robots op het tabblad Site. Als die op noindex, nofollow staat (soms overgebleven van een staging-site), gehoorzamen zoekmachines hieraan. Zet het terug op index, follow.

13.5 Redacteuren verliezen hun HTML bij het opslaan

Symptoom: Een redacteur slaat een artikel op en zijn iframe, script of opmaak wordt verwijderd.

Oplossing: Dat is het tabblad Tekstfilters dat zijn werk doet. Pas het filter voor die gebruikersgroep aan (zet bijvoorbeeld een Witte lijst die de tags toestaat die je vertrouwt) - maar zet nooit "Geen filtering" voor groepen die je niet volledig vertrouwt.

13.6 Verouderde inhoud na wijzigingen

Symptoom: Je hebt iets gewijzigd, maar de site blijft de oude versie tonen.

Oplossing: De cache staat aan. Verlaag de Cache-tijd, maak de cache leeg via Systeem → Cache legen, of schakel de cache uit terwijl je debugt.

Naar boven

14. Best practices

Als je maar een paar dingen uit dit artikel onthoudt, onthoud dan deze:

  • Weet hoe instellingen opgeslagen worden: de meeste instellingen gaan naar configuration.php, Machtigingen naar de root van #__assets, Tekstfilters naar de eigen params van com_config.
  • Maak een back-up van configuration.php voor elke handmatige bewerking. Het is een bestand, en eenvoudig te herstellen.
  • Houd configuration.php alleen-lezen op productie, en versoepel dat alleen kort wanneer je opslaat.
  • Geef je $secret-waarde nooit bloot. Vervang hem als hij ooit lekt.
  • Wijzig SEF- en cache-instellingen eerst op een staging-kopie - ze raken elke pagina.
  • Lees instellingen in code met de juiste API: $app->get() voor globaal, ComponentHelper::getParams() voor component-opties.
  • Stel verstandige globale standaarden in op de tabbladen Machtigingen en Metadata, en overschrijf alleen per item waar nodig.
Naar boven

15. In het kort

OPEN GLOBALE CONFIG   /administrator/index.php?option=com_config&view=application
OPEN COMPONENT-OPTIES /administrator/index.php?option=com_config&view=component&component=com_x
GLOBAAL FORM-BESTAND  administrator/components/com_config/forms/application.xml
COMPONENT-FORMBESTAND administrator/components/com_x/config.xml

OPSLAG
  Globale instellingen public_html/configuration.php   (klasse JConfig)
  Component-opties      #__extensions.params            (JSON)
  Tabblad Machtigingen  #__assets id=1 (root.1)         (kolom rules, JSON)
  Tabblad Tekstfilters  #__extensions params van com_config (sleutel filters)

LEZEN IN CODE
  Globaal               Factory::getApplication()->get('sitename')
  Component-optie       ComponentHelper::getParams('com_content')->get('show_title')

BELANGRIJKE GLOBALE SLEUTELS  sitename, offline, sef, sef_rewrite, caching, cachetime,
                              mailer, force_ssl, error_reporting, tmp_path, secret
Naar boven

16. Samenvatting

De component com_config is klein maar centraal voor elke Joomla-site:

  • Het rendert de schermen Globale configuratie en de Opties per component vanuit dezelfde code.
  • Globale instellingen worden opgeslagen als een PHP-klasse in configuration.php, niet in de database.
  • Component-opties worden opgeslagen als JSON in #__extensions.params.
  • Het tabblad Machtigingen schrijft naar het ACL-root-asset, en Tekstfilters schrijven naar de eigen params van com_config.
  • Je leest globale instellingen met Factory::getApplication()->get() en component-opties met ComponentHelper::getParams().
  • Globale configuratie wordt bewust niet via de REST-API beschikbaar gesteld.

Zodra je weet waar elke instelling opgeslagen wordt, houdt Globale configuratie op hoeveelheid opties te zijn en wordt het overzichtelijker: deze waarde staat in een bestand, die in de database, en die andere twee zijn eigenlijk toegangsregels. Als je site zich gedraagt op een manier die je niet kunt verklaren - trage pagina's, kapotte URL's, ontbrekende HTML of een plotselinge daling in zoekverkeer - ligt de oorzaak heel vaak in een enkele instelling in com_config. Weten hoe het wordt opgeslagen en gelezen is de snelste manier om het te vinden, en het is een van de componenten die een Joomla-professional goed zou moeten kennen.

Naar boven
Config in Joomla
Peter Martin
Peter Martin

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