Terug naar hoofdinhoud

Postinstall messages in Joomla

18 juni 2026

Nadat je Joomla installeert, of na een grote update, zie je soms een kort bericht in de admin beheeromgeving: "We hebben deze instelling gewijzigd, dit moet je weten." Het lijkt een klein melding, maar het is een Joomla core kerncomponent die echt werk doet. Dat component heet com_postinstall, en zo informeren Joomla en 3rd party extensies jou als er iets is veranderd.

Dit artikel legt uit hoe de Joomla-component voor post-installatieberichten echt werkt. Het behandelt de basis voor website-eigenaren en redacteuren, het dagelijkse scherm voor beheerders en de technische details voor ontwikkelaars: de berichttypen, de statussen, de databasetabel, de weergavepijplijn, RAD-paden en hoe je je eigen berichten maakt.

De stille component die "we hebben iets belangrijks gewijzigd" omzet in een bericht dat je kunt lezen, waarop je kunt handelen en dat je kunt wegklikken.

Het doel is simpel: je com_postinstall goed genoeg laten begrijpen om de berichten met vertrouwen te lezen en, als je extensies bouwt, je eigen berichten te versturen.

1. De basis

1.1 Wat com_postinstall Is

com_postinstall is een kleine kerncomponent die post-installatie- en upgradeberichten toont. Wanneer Joomla zelf, of een van je extensies, je iets moet vertellen vlak na een installatie of update, slaat het een bericht op en toont com_postinstall het. De officiele beschrijving is kort en exact: "Toont post-installatie- en post-upgradeberichten voor Joomla en zijn extensies."

Het is een component die alleen in de beheeromgeving werkt. Het heeft geen frontend, geen artikelen en geen openbare URL. Het bestaat om eenmalige meldingen af te leveren bij de mensen die de site beheren.

Heb je ooit een Joomla-melding gezien als "Je oude TinyMCE-instelling is gewijzigd, klik hier om te controleren"? Dat was com_postinstall.

1.2 Waar je het vindt

Het scherm zit onder het menu Systeem in de beheeromgeving:

Systeem
 └─ Beheren
     └─ Post-installatieberichten

De volledige titel van de pagina is Post-installatie- en upgradeberichten. De URL is index.php?option=com_postinstall in de beheeromgeving. Je kunt het ook bereiken via het Systeemdashboard, waar een klein meldingenpaneel laat zien hoeveel berichten op je wachten.

1.3 Waarom het bestaat

Sommige wijzigingen kun je niet stilletjes doorvoeren. Een nieuwe Joomla-versie kan een beveiligingsinstelling toevoegen die je zelf moet aanzetten, of een standaardwaarde wijzigen die je inhoud raakt. Een gewone e-mail of changelog mis je makkelijk. Een bericht dat in de beheeromgeving blijft staan, met een knop die de wijziging voor je uitvoert, negeer je veel moeilijker. Dat is precies het punt van com_postinstall: de juiste melding, op de juiste plek, op het juiste moment.

Naar boven

2. De anatomie van een bericht

Elk bericht wordt getoond als een kaart. Een typische kaart heeft vier onderdelen:

OnderdeelWat het is
Titel Een korte kop, getoond als heading op de kaart.
Sinds versie Een klein regeltje, "Sinds versie X", dat aangeeft welke versie het bericht introduceerde.
Beschrijving De hoofdtekst die de wijziging uitlegt en wat je moet doen.
Actieknop Een optionele knop. Die opent een link of voert een taak uit. Gewone meldingen hebben geen knop.

Naast de actieknop zien beheerders ook twee kleine knoppen om het bericht zelf te beheren:

  • Verberg dit bericht - haalt het bericht uit de lijst. Je bent ermee klaar.
  • Archiveren - zet het bericht in een "gearchiveerde" status. Het is niet meer actief, maar je kunt het later opnieuw lezen.

Elke tekst die je op de kaart leest komt uit een taalsleutel, niet uit vaste tekst. De titel, de beschrijving en het knoplabel zijn allemaal sleutels zoals COM_FOOBAR_POSTINSTALL_MESSAGEONE_TITLE. Joomla laadt het taalbestand van de extensie en vertaalt de sleutel. Daarom verschijnen berichten in je eigen taal als er een vertaling bestaat.

Naar boven

3. De drie berichttypen

Elk bericht heeft een type. Het type bepaalt of er een knop is en wat die knop doet. Er zijn precies drie typen.

TypeKnopWat er gebeurt
message Geen Een gewone informatieve melding. Je leest hem en klikt hem weg.
link Ja De knop opent een URL, bijvoorbeeld een instellingenpagina in Joomla.
action Ja De knop voert een PHP-functie uit die een wijziging voor je doorvoert.

3.1 message

Het eenvoudigste type. Er is geen actieknop, alleen de titel, de beschrijving en de beheerknoppen. Gebruik dit als je alleen wilt informeren.

De actieknop stuurt je naar een URL. De URL wordt bij het bericht opgeslagen. Een veelvoorkomend voorbeeld is een knop die een specifiek Opties-scherm opent: index.php?option=com_foobar&view=tools&task=installSampleData. De gebruiker klikt, Joomla stuurt door, en de gebruiker rondt de wijziging daar af.

3.3 action

Het krachtigste type. De knop roept een PHP-functie binnen de extensie aan. Joomla laadt een bestand, voert een benoemde functie uit, en de functie doet het werk. Zo kan een bericht zeggen "Klik hier om dit voor je op te lossen" en de oplossing daadwerkelijk toepassen bij de klik.

Naar boven

4. Dagelijks gebruik voor beheerders

4.1 Berichten lezen en opruimen

Open Systeem → Beheren → Post-installatieberichten. Lees elke kaart. Als een kaart een actieknop heeft, bepaal dan of je hem gebruikt. Als je klaar bent met een bericht, klik je op Verberg dit bericht. Als de lijst leeg is, toont Joomla een vriendelijke notitie: "Je hebt alle berichten gelezen."

4.2 Het extensiefilter

Bovenaan de pagina staat een keuzelijst met het label Berichten weergeven voor. Standaard toont de lijst berichten voor de Joomla-kern (de extensie "Joomla! files"). Als andere extensies berichten hebben achtergelaten, kun je ze uit deze keuzelijst kiezen om de lijst te wisselen. Als alleen de kern berichten heeft, wordt de keuzelijst verborgen om het scherm overzichtelijk te houden.

4.3 Alle berichten verbergen

De werkbalk heeft een knop Alle berichten verbergen. Die verbergt in een klik elk bericht voor de op dat moment geselecteerde extensie. Gebruik hem als je alles hebt gelezen en een schoon dashboard wilt.

4.4 Berichten herstellen

Verborgen berichten worden niet verwijderd, alleen als verborgen gemarkeerd. Heb je ze ooit weer nodig, dan biedt het lege-staatscherm een knop Berichten herstellen. Die zet elk bericht voor de geselecteerde extensie weer aan, zodat ze allemaal terugkeren in de actieve lijst. Handig als je een bericht te snel verborg en het opnieuw wilt lezen.

4.5 Opnieuw lezen

Een gearchiveerd bericht is ook niet weg. Op de kaart zie je een knop Opnieuw lezen (een gearchiveerd bericht kun je opnieuw publiceren). Klik erop en het bericht keert terug in de actieve lijst. Je hebt dus twee zachte manieren om een bericht weg te halen (Verbergen en Archiveren) en twee manieren om berichten terug te halen (Herstellen en Opnieuw lezen).

Naar boven

5. Berichtstatussen: Gepubliceerd, verborgen, gearchiveerd

Achter de knoppen zit een enkele kolom, enabled, die de status van elk bericht bewaart. Die heeft drie waarden.

enabledStatusBetekenis
1 Gepubliceerd Actief. Het bericht verschijnt als normale kaart met zijn actieknop.
2 Gearchiveerd Opzijgezet. Alleen getoond als kleine kaart met een knop "Opnieuw lezen".
0 Verborgen Weggeklikt. Helemaal niet getoond, maar nog wel opgeslagen in de database.

Het lijstscherm laadt berichten waar enabled gelijk is aan 1 of 2, dus verborgen berichten (0) verschijnen nooit. De meldingenteller op het Systeemdashboard telt echter alleen de berichten met 1 (gepubliceerd), want dat zijn de berichten die nog je aandacht nodig hebben.

De knoppen wijzigen simpelweg deze ene waarde: Verbergen zet hem op 0, Archiveren zet hem op 2, Opnieuw lezen en Herstellen zetten hem terug op 1.

Naar boven

6. Onder de motorkap: De databasetabel

Alle berichten staan in een tabel, #__postinstall_messages. (Het voorvoegsel #__ wordt je echte tabelvoorvoegsel, bijvoorbeeld jos_postinstall_messages.) Elke rij is een bericht. Dit zijn de kolommen die ertoe doen.

KolomDoel
postinstall_message_id Primaire sleutel, de unieke id van het bericht.
extension_id Welke extensie het bericht bezit (een rij in #__extensions).
type Een van message, link of action.
title_key Taalsleutel voor de titel.
description_key Taalsleutel voor de hoofdtekst.
action_key Taalsleutel voor het knoplabel (niet gebruikt bij message).
language_extension Welke extensie de taalsleutels bevat, bijvoorbeeld com_foobar.
language_client_id Frontend- (0) of backend- (1) taalbestanden laden.
action_file RAD-pad naar het PHP-bestand voor een action-bericht.
action Voor link: de URL. Voor action: de naam van de PHP-functie.
condition_file RAD-pad naar een PHP-bestand dat bepaalt of het bericht getoond wordt.
condition_method De PHP-functie die true of false teruggeeft om het bericht te tonen of te verbergen.
version_introduced De versie die dit bericht voor het eerst toonde ("Sinds versie X").
enabled Status: 1 gepubliceerd, 2 gearchiveerd, 0 verborgen.

Let op dat de tabel sleutels en paden opslaat, nooit de uiteindelijke tekst. De echte woorden worden later uit de taalbestanden opgehaald. Zo blijven berichten vertaalbaar en klein.

Naar boven

7. Onder de motorkap: Hoe berichten worden getoond

com_postinstall is een standaard Model-View-Controller (MVC)-component. Als je het scherm opent, is de flow rechttoe rechtaan.

  1. De view vraagt het model (MessagesModel) om de berichten van de geselecteerde extensie.
  2. Het model leest de rijen uit #__postinstall_messages waar enabled gelijk is aan 1 of 2.
  3. Het model verwerkt de lijst na: het laadt de juiste taalbestanden en voert per bericht de weergaveconditie uit.
  4. De template rendert elk overgebleven bericht als een kaart.

7.1 Condities bepalen de zichtbaarheid

Een bericht kan een condition_file en een condition_method dragen. Tijdens de naverwerking voegt het model het bestand in en roept de functie aan. Geeft de functie false terug, dan valt het bericht uit de lijst voordat het ooit getoond wordt. Zo kan een bericht alleen verschijnen wanneer het relevant is, bijvoorbeeld "toon dit alleen als de oude instelling nog actief is." Zodra de gebruiker het probleem oplost, geeft de conditie false terug en verdwijnt het bericht stilletjes.

7.2 Caching

Het model cachet zijn resultaten in de cachegroep com_postinstall, omdat berichten bij elke paginaweergave lezen en evalueren verspilling zou zijn. Telkens als een bericht van status verandert (verbergen, archiveren, opnieuw publiceren, herstellen), leegt de component deze cache zodat de lijst en de dashboardteller kloppen.

7.3 Taalbestanden laden

Voor het renderen laadt het model per bericht de taalextensie, via het frontend- of backendpad op basis van language_client_id. Daarom toont een bericht van com_foobar zijn eigen vertaalde titel en beschrijving, ook al weet com_postinstall niets van de bewoording van die extensie.

Naar boven

8. RAD-paden, condities en acties

8.1 Wat een RAD-pad is

De kolommen action_file en condition_file slaan geen volledige schijfpaden op. Ze slaan korte RAD-paden op met een voorvoegsel dat Joomla tijdens runtime uitvouwt. Er zijn twee voorvoegsels.

VoorvoegselVouwt uit naarVoorbeeld
site:// De siteroot (JPATH_ROOT) site://components/com_foobar/postinstall.php
admin:// De administrator-map (JPATH_ADMINISTRATOR) admin://components/com_foobar/postinstall.php

Een kleine helper vouwt het voorvoegsel uit naar een echt pad voordat het bestand wordt ingevoegd. Een voorvoegsel houdt de opgeslagen waarde kort en onafhankelijk van waar Joomla geinstalleerd is.

8.2 Waarom functies, geen klassen

Zowel de conditie als de actie wijzen naar gewone PHP-functies, geen klassemethoden. Het model voegt het bestand een keer in en roept de functie bij naam aan. Een conditiefunctie moet true of false teruggeven. Een actiefunctie doet zijn werk en geeft niets terug. Houd deze functies simpel en op zichzelf staand.

Naar boven

9. Je eigen Post-installatieberichten maken

Als je extensies bouwt, kun je je eigen berichten toevoegen. De gebruikelijke plek is het post-installatiescript van je extensie, het script dat Joomla uitvoert nadat je pakket is geinstalleerd of bijgewerkt. Je roept een methode aan op het com_postinstall-model en geeft een array met opties mee.

use Joomla\CMS\Factory;

$options = [
    'extension_id'       => $myExtensionId,
    'type'               => 'message',
    'title_key'          => 'COM_FOOBAR_POSTINSTALL_TITLE',
    'description_key'    => 'COM_FOOBAR_POSTINSTALL_DESCRIPTION',
    'language_extension' => 'com_foobar',
    'language_client_id' => 1,
    'version_introduced' => '2.0.0',
    'enabled'            => 1,
];

Factory::getApplication()
    ->bootComponent('com_postinstall')
    ->getMVCFactory()
    ->createModel('Messages', 'Administrator', ['ignore_request' => true])
    ->addPostInstallationMessage($options);

Het voorbeeld hierboven is een gewoon message: het eenvoudigste type en het type dat het meest waarschijnlijk gewoon werkt. De typen link en action hebben een paar sleutels meer nodig, zoals hieronder beschreven.

9.1 De verplichte opties

De methode valideert je invoer en gooit een duidelijke exception als er iets ontbreekt. De regels zijn:

  • extension_id, type, title_key, description_key en language_extension zijn altijd verplicht.
  • type moet exact message, link of action zijn.
  • Voor link en action heb je ook een action_key en een condition_file plus condition_method nodig.
  • Voor link zet je action op de URL. Voor action zet je action_file en action (de functienaam), en het bestand moet op schijf bestaan.

9.2 Het extension_id vinden

Elk bericht heeft het numerieke extension_id nodig van de extensie die het bezit. Die lees je uit de tabel #__extensions. Voor een component:

SELECT extension_id, name, type, element, client_id
FROM #__extensions
WHERE element = 'com_foobar';

Voor een plugin moet je ook de folder matchen, omdat dezelfde elementnaam in verschillende plugingroepen kan voorkomen:

SELECT extension_id, name, type, element, folder, client_id
FROM #__extensions
WHERE type = 'plugin'
  AND folder = 'system'
  AND element = 'foobar';

Binnen een installatie- of updatescript heb je geen ruwe SQL nodig: Joomla kent je eigen extensie-id al, dus lees die uit de installer-adapter in plaats van een nummer hard te coderen.

9.3 Toevoegen is veilig om te herhalen

De methode controleert of er al een rij bestaat met dezelfde extensie, type en titelsleutel. Is de definitie identiek, dan doet hij niets. Is hij gewijzigd, dan verwijdert hij de oude rij en voegt een nieuwe in. Zo kun je hem bij elke update aanroepen zonder duplicaten te maken, precies wat een post-installatiescript nodig heeft.

Wees voorzichtig met type = link als je het registreert via addPostInstallationMessage. In het huidige Joomla 6 valideert de methode een sleutel link, maar die sleutel hoort niet bij de geaccepteerde optielijst en wordt eruit gestript voordat de controle draait. Het praktische gevolg is dat een link-definitie "needs an action (URL)" kan gooien, zelfs als je de URL in de sleutel action hebt gezet zoals de documentatie voorschrijft.

Tot dit is opgelost zijn de veilige keuzes: gebruik message als je alleen wilt informeren, gebruik action voor een gecontroleerde interne taak, en heb je echt een link nodig, test die dan op een schone installatie van precies de Joomla-versie die je beoogt en inspecteer eerst MessagesModel::addPostInstallationMessage(). Een gewone databaserij werkt ook als je die zelf invoegt.

9.5 Beveiliging: action-berichten voeren PHP uit

Een action-bericht is krachtig juist omdat zijn knop een PHP-functie uit action_file uitvoert. Ga zorgvuldig met die kracht om.

  • Houd de action_file binnen je eigen extensie. Wijs hem nooit naar door gebruikers aangeleverde of externe inhoud.
  • Controleer binnen de functie de rechten van de gebruiker voordat je iets doet dat data wijzigt.
  • Maak de actie idempotent, zodat twee keer op de knop klikken geen schade aanricht.
  • Gebruik de conditiefunctie alleen om true of false terug te geven. Laat hem nooit data migreren, bestanden schrijven of instellingen wijzigen; condities draaien vaak, ook wanneer Joomla berichten telt.
  • Log belangrijke wijzigingen en faal netjes, in plaats van invoer uit het verzoek te vertrouwen.

9.6 Hoe dit verschilt van enqueueMessage()

Joomla heeft een tweede, bekendere manier om een bericht te tonen: Factory::getApplication()->enqueueMessage('Saved successfully.'). Het lijkt erop, maar lost een ander probleem op. Post-installatieberichten zijn duurzaam; in de wachtrij gezette berichten niet.

KenmerkenqueueMessage()com_postinstall
Opgeslagen in de database Nee Ja
Overleeft een paginaherlaadbeurt Nee Ja
Permanent weg te klikken Nee Ja
Kan conditielogica bevatten Nee Ja
Het best voor Directe, eenmalige feedback Duurzame upgradebegeleiding

Gebruik enqueueMessage() voor "je wijzigingen zijn opgeslagen"-feedback binnen een enkel verzoek. Gebruik com_postinstall voor begeleiding die op het dashboard moet blijven wachten tot de beheerder erop handelt.

Naar boven

10. Rechten en het opties-scherm

com_postinstall gebruikt de standaard Access Control List (ACL) van Joomla. Het definieert een kleine set acties.

ActieLaat de gebruiker
core.manage De component openen en de berichten lezen.
core.edit.state De knoppen Verbergen, Archiveren en Opnieuw lezen zien en gebruiken.
core.admin Het Opties-scherm openen en rechten bewerken.

Een gebruiker kan dus berichten mogen lezen zonder hun status te mogen wijzigen. De Opties-knop in de werkbalk verschijnt alleen voor gebruikers met core.admin, en het Opties-scherm zelf bevat enkel het tabblad Rechten. Er valt hier vrijwel niets in te stellen, wat past bij een component wiens hele taak is om berichten van elders door te geven.

Naar boven

11. Web services API

Veel Joomla-kerncomponenten leveren een REST API onder /api/index.php/v1/... zodat externe tools data kunnen lezen of wijzigen. com_postinstall is een bewuste uitzondering: het heeft geen Web Services API. Er is geen API-controller, geen openbare route en geen token-gebaseerd eindpunt voor post-installatieberichten.

De reden is praktisch. Deze berichten zijn kortlevende meldingen die alleen voor de beheeromgeving zijn en vaak PHP-acties uitvoeren of live condities evalueren. Ze blootstellen aan externe clients zou risico toevoegen zonder echte waarde. Moet je ze programmatisch lezen of opruimen, dan doe je dat binnen Joomla, via dezelfde modelmethode die de component zelf gebruikt, bijvoorbeeld vanuit een CLI-plugin:

use Joomla\CMS\Factory;

$model = Factory::getApplication()
    ->bootComponent('com_postinstall')
    ->getMVCFactory()
    ->createModel('Messages', 'Administrator', ['ignore_request' => true]);

$count = $model->getItemsCount();

Zo blijven de logica, de condities en de cacheafhandeling consistent met het scherm dat je in de beheeromgeving ziet.

Naar boven

12. SEO en metadata

com_postinstall is een component die alleen in de beheeromgeving werkt, dus het heeft geen direct effect op SEO. Het produceert geen frontendpagina's, geen URL's die zoekmachines kunnen bereiken en geen metadata. Zoekmachines zien nooit een post-installatiebericht.

Het indirecte effect is echter echt en het zeggen waard. Veel post-installatieberichten bestaan juist om je site te beschermen of te verbeteren: een nieuwe beveiligingsheader, een gewijzigde standaardwaarde die de weergave van inhoud raakt, een instelling die prestaties beinvloedt. Op deze berichten handelen houdt je site gezond, en een gezonde, veilige, snelle site is de basis van goede SEO. De regel is dus simpel: lees de berichten, doe wat ze vragen als het zinvol is, en je openbare site profiteert ervan, ook al blijft de component zelf onzichtbaar.

Naar boven

13. Veelgemaakte fouten en valkuilen

13.1 Berichten als spam behandelen

Symptoom: Je klikt elke keer op "Alle verbergen" zonder de berichten te lezen.

Oplossing: Berichten na de installatie komen zelden voor en zijn meestal belangrijk. Lees elk bericht voordat je het verbergt. Veel berichten gaan over een beveiligingswijziging of een wijziging in het gedrag waarvan je echt op de hoogte moet zijn.

13.2 Denken dat verborgen verwijderd betekent

Symptoom: Je hebt een bericht verborgen en kunt het nu niet meer terugvinden.

Oplossing: Verborgen berichten worden niet verwijderd, alleen op enabled = 0 gezet. Gebruik de knop Berichten herstellen op het lege-staatscherm om ze allemaal terug te halen, of Opnieuw lezen voor een gearchiveerd bericht.

13.3 Naar de verkeerde extensie kijken

Symptoom: Een bericht dat je verwachtte, staat niet in de lijst.

Oplossing: Het scherm filtert op extensie. Standaard toont het de Joomla core extensies. Gebruik de keuzelijst Berichten weergeven voor om naar de extensie te wisselen die het bericht achterliet.

13.4 Ontwikkelaar: Ontbrekend conditiebestand

Symptoom: addPostInstallationMessage gooit een exception tijdens de installatie.

Oplossing: Voor de typen link en action moet het condition_file (en, voor acties, het action_file) op schijf bestaan op het moment dat je het bericht registreert. Controleer je RAD-pad-voorvoegsel (admin:// of site://) en of het bestand in je pakket wordt meegeleverd.

13.5 Ontwikkelaar: Verkeerde taalinstellingen

Symptoom: De kaart toont ruwe sleutels zoals COM_FOOBAR_POSTINSTALL_TITLE in plaats van tekst.

Oplossing: Zet language_extension op de extensie die de sleutels bezit en language_client_id op de juiste kant (1 voor backend, 0 voor frontend), en zorg dat het taalbestand is geinstalleerd.

13.6 Ontwikkelaar: foutmelding bij registratie van een linkbericht

Symptoom: Het registreren van een bericht met type = link via addPostInstallationMessage verschijnt de foutmelding „needs an action (URL)”, ook al heb je de URL opgegeven.

Oplossing: Dit is een bekende validatiefout in de huidige versie van Joomla 6, waarbij de methode controleert op een link-sleutel die al uit de opties is verwijderd. Gebruik in plaats daarvan ‘message’ of ‘action’, of voeg de rij rechtstreeks in, en test linkberichten op de exacte Joomla-versie waarop u zich richt. Zie paragraaf 9.4.

Naar boven

14. Best practices

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

  • Controleer Systeem → Beheren → Post-installatieberichten na elke Joomla- of extensie-update.
  • Lees elk bericht voordat je het verbergt. Ze zijn zeldzaam en doen er meestal toe.
  • Gebruik Archiveren voor berichten die je voor later wilt bewaren, en Verbergen voor berichten waarmee je echt klaar bent.
  • Onthoud dat er niets wordt verwijderd: Berichten herstellen en Opnieuw lezen halen berichten terug.
  • Registreer als ontwikkelaar berichten vanuit je post-installatiescript, zodat ze updates overleven zonder te dupliceren.
  • Gebruik condities zodat een bericht alleen verschijnt zolang het relevant is, en verdwijnt zodra de gebruiker handelt.
  • Gebruik altijd taalsleutels, nooit hard gecodeerde tekst, zodat je berichten vertaalbaar blijven.
Naar boven

15. In het kort

SCHERM
  Systeem > Beheren > Post-installatieberichten
  URL: index.php?option=com_postinstall

BERICHTTYPEN
  message   alleen informatief, geen knop
  link      knop opent een URL
  action    knop voert een PHP-functie uit

STATUSSEN (kolom enabled)
  1   gepubliceerd   getoond als actieve kaart
  2   gearchiveerd   getoond met "Opnieuw lezen"
  0   verborgen      opgeslagen maar niet getoond

KNOPPEN
  Verberg dit bericht       enabled -> 0
  Archiveren                enabled -> 2
  Opnieuw lezen             enabled -> 1 (vanuit gearchiveerd)
  Alle berichten verbergen  alles van een extensie -> 0
  Berichten herstellen      alles van een extensie -> 1

DATABASE
  #__postinstall_messages   een rij per bericht

RAD-PAD-VOORVOEGSELS
  site://    -> siteroot (JPATH_ROOT)
  admin://   -> administrator (JPATH_ADMINISTRATOR)

ONTWIKKELAARS-API
  bootComponent('com_postinstall')
    ->getMVCFactory()
    ->createModel('Messages', 'Administrator', ['ignore_request' => true])
    ->addPostInstallationMessage($options);

RECHTEN
  core.manage       openen en lezen
  core.edit.state   verbergen / archiveren / opnieuw publiceren
  core.admin        Opties-scherm

WEB SERVICES API
  geen (geen REST-eindpunt)
Naar boven

16. Samenvatting

com_postinstall is een klein maar nuttig onderdeel van Joomla. Dit is wat je moet onthouden:

  • Het toont post-installatie- en upgradeberichten van Joomla en zijn extensies, alleen in de beheeromgeving.
  • Berichten komen in drie typen: een gewone melding, een link of een PHP-actie.
  • De kolom enabled geeft elk bericht een status: gepubliceerd, gearchiveerd of verborgen. Er wordt nooit iets verwijderd.
  • Alle berichten staan in #__postinstall_messages en slaan taalsleutels en RAD-paden op, geen uiteindelijke tekst.
  • Het model laadt, conditioneert, cachet en vertaalt de berichten voordat de template ze als kaarten rendert.
  • Ontwikkelaars registreren berichten vanuit een post-installatiescript met addPostInstallationMessage, veilig en herhaalbaar.
  • Er is geen Web Services API; de component is bedoeld voor de mensen die de site beheren.

Meestal werp je alleen een blik op dit scherm, verberg je een bericht en ga je verder. Maar als er na een update een post-installatiebericht verschijnt, is dat vaak de duidelijkste waarschuwing die je krijgt dat iets op je site aandacht nodig heeft. Als je Joomla-site een stapel ongelezen berichten heeft, of je niet zeker weet of een eerdere update een instelling half gewijzigd achterliet, loont het om iemand mee te laten lezen en de onderliggende configuratie te laten controleren. Dat is precies het soort stille, zorgvuldige Joomla-onderhoudswerk waar ik plezier in heb.

Naar boven
Postinstall messages in Joomla
Peter Martin
Peter Martin

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