v2.6.5 (Lyra): Dynamische pad-resolutie, WordPress-stijl docblocks, security-fix wachtwoord, git-historie schoon
- Bug: dashboard toonde 0 content (AdminPluginAPI::getContentDir() gaf relatief pad terug zonder normalisatie) - Dynamische pad-resolutie: PluginAPIInterface uitgebreid met getProjectRoot/getContentDir/getPluginsDir/getVersionInfo; CMSAPI en AdminPluginAPI implementeren deze universeel - public/index.php media-serving gebruikt $config['content_dir'] i.p.v. hardcoded /content - Navigation en Logs plugins halen paden via de API i.p.v. hardcoded dirname(__DIR__) - WordPress-stijl docblocks toegevoegd voor alle classes, methods, properties en functies (~450 docblocks, @since 2.6.5) - Security: hardcoded plaintext-wachtwoord 'admin' verwijderd uit AdminAuth.php; bij eerste installatie wordt een cryptografisch veilig wachtwoord gegenereerd (random_bytes, 16 tekens) en eenmalig op het inlogscherm getoond - Security: git-geschiedenis schoongemaakt (admin.json, admin.json.example, admin-console/config/admin.json verwijderd uit alle commits; filter-branch over alle branches + tags, gc --prune --aggressive) - README.md, README.en.md, AGENTS.md bijgewerkt - Test-scripts bijgewerkt naar clean-URL structuur + actuele ARIA-waarden - Versie verhoogd naar 2.6.5 - Tests: pentest 29/29, WCAG 25/25, functioneel 16/16, enhanced 25/25
This commit is contained in:
@@ -5,14 +5,14 @@
|
||||
*
|
||||
* Biedt alleen-lezen toegang tot de site-config (zonder CMS-instance nodig).
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*/
|
||||
class AdminPluginAPI implements PluginAPIInterface
|
||||
{
|
||||
/**
|
||||
* De site-configuratie als associatieve array.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
* @var array<string,mixed>
|
||||
*/
|
||||
private array $config;
|
||||
@@ -20,7 +20,7 @@ class AdminPluginAPI implements PluginAPIInterface
|
||||
/**
|
||||
* Het absolute pad naar de project-root.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
* @var string
|
||||
*/
|
||||
private string $projectRoot;
|
||||
@@ -28,7 +28,7 @@ class AdminPluginAPI implements PluginAPIInterface
|
||||
/**
|
||||
* De actieve admin-taalcode (bijv. 'nl', 'en').
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
* @var string
|
||||
*/
|
||||
private string $adminLanguage;
|
||||
@@ -36,7 +36,7 @@ class AdminPluginAPI implements PluginAPIInterface
|
||||
/**
|
||||
* De admin PluginManager-instantie, optioneel via setPluginManager geïnjecteerd.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
* @var PluginManager|null
|
||||
*/
|
||||
private ?PluginManager $pluginManager = null;
|
||||
@@ -44,7 +44,7 @@ class AdminPluginAPI implements PluginAPIInterface
|
||||
/**
|
||||
* Construeer een AdminPluginAPI-instantie met de opgegeven site-config.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param array<string,mixed> $siteConfig De site-configuratie.
|
||||
* @param string $projectRoot Optioneel absoluut pad naar de project-root.
|
||||
@@ -61,7 +61,7 @@ class AdminPluginAPI implements PluginAPIInterface
|
||||
* Injecteer de admin PluginManager zodat plugins hun eigen vertalingen
|
||||
* via dezelfde fallback-keten kunnen resolven.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param PluginManager $pm De admin PluginManager-instantie.
|
||||
* @return void
|
||||
@@ -74,7 +74,7 @@ class AdminPluginAPI implements PluginAPIInterface
|
||||
/**
|
||||
* Haal een configuratiewaarde op via dot-notatie.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param string $key Configuratie-sleutel in dot-notatie (bijv. 'language.default').
|
||||
* @param mixed $default Standaardwaarde indien de sleutel niet bestaat.
|
||||
@@ -98,7 +98,7 @@ class AdminPluginAPI implements PluginAPIInterface
|
||||
/**
|
||||
* Haal de project-rootdirectory op.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @return string Absoluut pad naar de project-root.
|
||||
*/
|
||||
@@ -113,7 +113,7 @@ class AdminPluginAPI implements PluginAPIInterface
|
||||
* Relatieve paden uit config.json (bijv. 'content') worden afgezet tegen
|
||||
* de project-root, conform het gedrag van cms/core/config.php.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @return string Absoluut pad naar de contentdirectory.
|
||||
*/
|
||||
@@ -129,7 +129,7 @@ class AdminPluginAPI implements PluginAPIInterface
|
||||
/**
|
||||
* Haal het pad naar de pluginsdirectory op.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @return string Absoluut pad naar de pluginsdirectory.
|
||||
*/
|
||||
@@ -141,7 +141,7 @@ class AdminPluginAPI implements PluginAPIInterface
|
||||
/**
|
||||
* Haal de lijst met ingeschakelde plugins op.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @return array<int,string> Lijst met ingeschakelde plugin-namen.
|
||||
*/
|
||||
@@ -153,7 +153,7 @@ class AdminPluginAPI implements PluginAPIInterface
|
||||
/**
|
||||
* Haal de versie-informatie uit version.php op.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @return array<string,mixed> Versie-informatie met minimaal de sleutel 'version'.
|
||||
*/
|
||||
@@ -174,7 +174,7 @@ class AdminPluginAPI implements PluginAPIInterface
|
||||
*
|
||||
* System-plugins gebruiken deze om hun vertalingen te resolven.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @return string De actieve admin-taalcode.
|
||||
*/
|
||||
@@ -189,7 +189,7 @@ class AdminPluginAPI implements PluginAPIInterface
|
||||
* Fallback-keten (afgehandeld door PluginManager):
|
||||
* aangevraagde taal -> default_language van de plugin -> lege array.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param string $pluginName Plugin-directorynaam.
|
||||
* @param string|null $lang Override-taal; standaard de actieve admin-taal.
|
||||
@@ -207,7 +207,7 @@ class AdminPluginAPI implements PluginAPIInterface
|
||||
/**
|
||||
* Vertaal een enkele sleutel voor een plugin in de admin-context.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param string $key Vertaalsleutel.
|
||||
* @param string $pluginName Plugin-directorynaam.
|
||||
|
||||
+32
-32
@@ -6,14 +6,14 @@
|
||||
* Biedt toegang tot de CodePressCMS-instance, pagina-informatie, menu, zoekresultaten,
|
||||
* vertalingen en bestandsoperaties binnen de front-end context.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*/
|
||||
class CMSAPI implements PluginAPIInterface
|
||||
{
|
||||
/**
|
||||
* De CodePressCMS-hoofdinstantie.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
* @var CodePressCMS
|
||||
*/
|
||||
private CodePressCMS $cms;
|
||||
@@ -21,7 +21,7 @@ class CMSAPI implements PluginAPIInterface
|
||||
/**
|
||||
* De front-end PluginManager-instantie, optioneel via setPluginManager geïnjecteerd.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
* @var PluginManager|null
|
||||
*/
|
||||
private ?PluginManager $pluginManager = null;
|
||||
@@ -29,7 +29,7 @@ class CMSAPI implements PluginAPIInterface
|
||||
/**
|
||||
* Construeer een CMSAPI-instantie met de opgegeven CodePressCMS.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param CodePressCMS $cms De CodePressCMS-hoofdinstantie.
|
||||
*/
|
||||
@@ -42,7 +42,7 @@ class CMSAPI implements PluginAPIInterface
|
||||
* Injecteer de front-end PluginManager zodat content-plugins hun eigen
|
||||
* vertalingen via dezelfde fallback-keten kunnen resolven.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param PluginManager $pm De front-end PluginManager-instantie.
|
||||
* @return void
|
||||
@@ -55,7 +55,7 @@ class CMSAPI implements PluginAPIInterface
|
||||
/**
|
||||
* Haal de informatie van de huidige pagina op.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @return array<string,mixed> Pagina-informatie van de huidige pagina.
|
||||
*/
|
||||
@@ -67,7 +67,7 @@ class CMSAPI implements PluginAPIInterface
|
||||
/**
|
||||
* Haal de titel van de huidige pagina op.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @return string De titel van de huidige pagina, of lege string.
|
||||
*/
|
||||
@@ -80,7 +80,7 @@ class CMSAPI implements PluginAPIInterface
|
||||
/**
|
||||
* Haal de inhoud van de huidige pagina op.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @return string De HTML-inhoud van de huidige pagina, of lege string.
|
||||
*/
|
||||
@@ -93,7 +93,7 @@ class CMSAPI implements PluginAPIInterface
|
||||
/**
|
||||
* Haal de URL van de huidige pagina op.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @return string De URL van de huidige pagina inclusief query-parameters.
|
||||
*/
|
||||
@@ -107,7 +107,7 @@ class CMSAPI implements PluginAPIInterface
|
||||
/**
|
||||
* Haal de menustructuur op.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @return array<int,array<string,mixed>> De menustructuur.
|
||||
*/
|
||||
@@ -119,7 +119,7 @@ class CMSAPI implements PluginAPIInterface
|
||||
/**
|
||||
* Haal een configuratiewaarde op via dot-notatie.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param string $key Configuratie-sleutel in dot-notatie (bijv. 'language.default').
|
||||
* @param mixed $default Standaardwaarde indien de sleutel niet bestaat.
|
||||
@@ -143,7 +143,7 @@ class CMSAPI implements PluginAPIInterface
|
||||
/**
|
||||
* Haal de project-rootdirectory op (absoluut, genormaliseerd).
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @return string Absoluut pad naar de project-root.
|
||||
*/
|
||||
@@ -158,7 +158,7 @@ class CMSAPI implements PluginAPIInterface
|
||||
* De CMS-config lost relatieve content_dir-waarden al op
|
||||
* (zie cms/core/config.php), dus deze wordt as-is teruggegeven.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @return string Absoluut pad naar de contentdirectory.
|
||||
*/
|
||||
@@ -170,7 +170,7 @@ class CMSAPI implements PluginAPIInterface
|
||||
/**
|
||||
* Haal het pad naar de pluginsdirectory op (absoluut, genormaliseerd).
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @return string Absoluut pad naar de pluginsdirectory.
|
||||
*/
|
||||
@@ -182,7 +182,7 @@ class CMSAPI implements PluginAPIInterface
|
||||
/**
|
||||
* Haal de versie-informatie uit version.php op.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @return array<string,mixed> Versie-informatie met minimaal de sleutel 'version'.
|
||||
*/
|
||||
@@ -201,7 +201,7 @@ class CMSAPI implements PluginAPIInterface
|
||||
/**
|
||||
* Haal een vertaling op voor de opgegeven sleutel.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param string $key Vertaalsleutel.
|
||||
* @return string De vertaalde string, of $key indien niet gevonden.
|
||||
@@ -214,7 +214,7 @@ class CMSAPI implements PluginAPIInterface
|
||||
/**
|
||||
* Haal de huidige content-taal op.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @return string De huidige taalcode (bijv. 'nl', 'en').
|
||||
*/
|
||||
@@ -226,7 +226,7 @@ class CMSAPI implements PluginAPIInterface
|
||||
/**
|
||||
* Controleer of de gebruiker zich op de homepage bevindt.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @return bool True indien de huidige pagina de default_page is.
|
||||
*/
|
||||
@@ -240,7 +240,7 @@ class CMSAPI implements PluginAPIInterface
|
||||
/**
|
||||
* Haal de bestandsinformatie van de huidige pagina op.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @return array<string,mixed>|null Bestandsinformatie of null indien niet aanwezig.
|
||||
*/
|
||||
@@ -253,7 +253,7 @@ class CMSAPI implements PluginAPIInterface
|
||||
/**
|
||||
* Haal de breadcrumb-HTML op.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @return string De gegenereerde breadcrumb-HTML.
|
||||
*/
|
||||
@@ -265,7 +265,7 @@ class CMSAPI implements PluginAPIInterface
|
||||
/**
|
||||
* Controleer of de contentdirectory inhoud bevat.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @return bool True indien de contentdirectory niet leeg is.
|
||||
*/
|
||||
@@ -277,7 +277,7 @@ class CMSAPI implements PluginAPIInterface
|
||||
/**
|
||||
* Haal de zoekresultaten op indien een zoekopdracht actief is.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @return array<int,array<string,mixed>> De zoekresultaten, of een lege array.
|
||||
*/
|
||||
@@ -292,7 +292,7 @@ class CMSAPI implements PluginAPIInterface
|
||||
/**
|
||||
* Controleer of momenteel een zoekopdracht wordt uitgevoerd.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @return bool True indien de search-query-parameter aanwezig is.
|
||||
*/
|
||||
@@ -304,7 +304,7 @@ class CMSAPI implements PluginAPIInterface
|
||||
/**
|
||||
* Haal de beschikbare talen op.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @return array<int,string> Lijst met beschikbare taalcodes.
|
||||
*/
|
||||
@@ -316,7 +316,7 @@ class CMSAPI implements PluginAPIInterface
|
||||
/**
|
||||
* Maak een URL voor een pagina.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param string $page Pagina-identifier.
|
||||
* @param string|null $lang Taalcode; standaard de huidige content-taal.
|
||||
@@ -334,7 +334,7 @@ class CMSAPI implements PluginAPIInterface
|
||||
* Het bestand moet binnen de CMS-directory liggen om willekeurige
|
||||
* file-inclusion te voorkomen.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param string $filePath Absoluut pad naar het PHP-bestand.
|
||||
* @return string De opgevangen output, of lege string indien ongeldig.
|
||||
@@ -360,7 +360,7 @@ class CMSAPI implements PluginAPIInterface
|
||||
/**
|
||||
* Haal de inhoud op uit een PHP-, HTML- of Markdown-bestand.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param string $filePath Pad naar het bestand.
|
||||
* @return string De bestandsinhoud (gerenderd indien PHP/Markdown), of lege string.
|
||||
@@ -390,7 +390,7 @@ class CMSAPI implements PluginAPIInterface
|
||||
/**
|
||||
* Controleer of een bestand in de contentdirectory bestaat.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param string $filename Bestandsnaam relatief ten opzichte van de contentdirectory.
|
||||
* @return bool True indien het bestand bestaat.
|
||||
@@ -404,7 +404,7 @@ class CMSAPI implements PluginAPIInterface
|
||||
/**
|
||||
* Haal alle content-items (mappen + bestanden) op als lijst met entry-arrays.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @return array<int,array<string,mixed>> Lijst met entries ['path' => ..., 'title' => ..., 'type' => ...].
|
||||
*/
|
||||
@@ -418,7 +418,7 @@ class CMSAPI implements PluginAPIInterface
|
||||
*
|
||||
* Geeft author_name, author_email en created terug uit de pagina-frontmatter.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @return array<string,string> Auteursmetadata met sleutels: author_name, author_email, created.
|
||||
*/
|
||||
@@ -440,7 +440,7 @@ class CMSAPI implements PluginAPIInterface
|
||||
* (afgehandeld door PluginManager): aangevraagde taal ->
|
||||
* default_language van de plugin -> lege array.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param string $pluginName Plugin-directorynaam.
|
||||
* @param string|null $lang Override-taal; standaard de huidige content-taal.
|
||||
@@ -458,7 +458,7 @@ class CMSAPI implements PluginAPIInterface
|
||||
/**
|
||||
* Vertaal een enkele sleutel voor een plugin in de front-end context.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param string $key Vertaalsleutel.
|
||||
* @param string $pluginName Plugin-directorynaam.
|
||||
|
||||
@@ -5,14 +5,14 @@
|
||||
*
|
||||
* Zowel CMSAPI (front-end) als AdminPluginAPI (admin) implementeren deze interface.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*/
|
||||
interface PluginAPIInterface
|
||||
{
|
||||
/**
|
||||
* Haal een configuratiewaarde op via dot-notatie.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param string $key Configuratie-sleutel in dot-notatie (bijv. 'language.default').
|
||||
* @param mixed $default Standaardwaarde indien de sleutel niet bestaat.
|
||||
@@ -23,7 +23,7 @@ interface PluginAPIInterface
|
||||
/**
|
||||
* Haal de project-rootdirectory op (absoluut, genormaliseerd).
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @return string Absoluut pad naar de project-root.
|
||||
*/
|
||||
@@ -34,7 +34,7 @@ interface PluginAPIInterface
|
||||
*
|
||||
* Bij een relatieve configuratiewaarde wordt deze afgezet tegen de project-root.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @return string Absoluut pad naar de contentdirectory.
|
||||
*/
|
||||
@@ -43,7 +43,7 @@ interface PluginAPIInterface
|
||||
/**
|
||||
* Haal het pad naar de pluginsdirectory op (absoluut, genormaliseerd).
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @return string Absoluut pad naar de pluginsdirectory.
|
||||
*/
|
||||
@@ -54,7 +54,7 @@ interface PluginAPIInterface
|
||||
*
|
||||
* Bevat altijd minimaal de sleutel 'version'.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @return array<string,mixed> Versie-informatie met minimaal de sleutel 'version'.
|
||||
*/
|
||||
@@ -67,7 +67,7 @@ interface PluginAPIInterface
|
||||
* huidige content-taal. De implementatie regelt de fallback naar de
|
||||
* default_language van de plugin.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param string $pluginName Plugin-directorynaam.
|
||||
* @param string|null $lang Optionele override-taal.
|
||||
@@ -78,7 +78,7 @@ interface PluginAPIInterface
|
||||
/**
|
||||
* Vertaal een enkele sleutel voor een plugin in de huidige context.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param string $key Vertaalsleutel.
|
||||
* @param string $pluginName Plugin-directorynaam.
|
||||
|
||||
@@ -7,14 +7,14 @@
|
||||
* action- en filter-hooks, en biedt methoden voor plugin-configuratie,
|
||||
* vertalingen, admin-routes en sidebar-content.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*/
|
||||
class PluginManager
|
||||
{
|
||||
/**
|
||||
* Geladen plugin-instanties, geïndexeerd op plugin-naam.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
* @var array<string,object>
|
||||
*/
|
||||
private array $plugins = [];
|
||||
@@ -22,7 +22,7 @@ class PluginManager
|
||||
/**
|
||||
* Het absolute pad naar de pluginsdirectory.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
* @var string
|
||||
*/
|
||||
private string $pluginsPath;
|
||||
@@ -30,7 +30,7 @@ class PluginManager
|
||||
/**
|
||||
* De geïnjecteerde plugin-API-instantie (CMSAPI of AdminPluginAPI).
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
* @var PluginAPIInterface|null
|
||||
*/
|
||||
private $api = null;
|
||||
@@ -38,7 +38,7 @@ class PluginManager
|
||||
/**
|
||||
* Lijst met ingeschakelde plugin-namen.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
* @var array<int,string>
|
||||
*/
|
||||
private array $enabledPlugins = [];
|
||||
@@ -46,7 +46,7 @@ class PluginManager
|
||||
/**
|
||||
* Geregistreerde action-hooks, gegroepeerd per hook-naam en prioriteit.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
* @var array<string,array<int,array<int,callable>>>
|
||||
*/
|
||||
private array $actions = [];
|
||||
@@ -54,7 +54,7 @@ class PluginManager
|
||||
/**
|
||||
* Geregistreerde filter-hooks, gegroepeerd per hook-naam en prioriteit.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
* @var array<string,array<int,array<int,callable>>>
|
||||
*/
|
||||
private array $filters = [];
|
||||
@@ -63,7 +63,7 @@ class PluginManager
|
||||
* De standaardtaal van de site, gebruikt als fallback voor plugins
|
||||
* zonder eigen default_language in plugin.json.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
* @var string
|
||||
*/
|
||||
private string $siteDefaultLanguage = 'nl';
|
||||
@@ -71,7 +71,7 @@ class PluginManager
|
||||
/**
|
||||
* Construeer een PluginManager en laadt direct de ingeschakelde plugins.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param string $pluginsPath Absoluut pad naar de pluginsdirectory.
|
||||
* @param array<int,string> $enabledPlugins Lijst met ingeschakelde plugin-namen.
|
||||
@@ -91,7 +91,7 @@ class PluginManager
|
||||
* Wordt gebruikt als fallback wanneer een plugin geen eigen `default_language`
|
||||
* declareert in plugin.json.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param string $lang Taalcode (bijv. 'nl', 'en').
|
||||
* @return void
|
||||
@@ -106,7 +106,7 @@ class PluginManager
|
||||
*
|
||||
* Plugins die een setAPI()-methode implementeren, ontvangen de API-instantie.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param PluginAPIInterface $api De plugin-API-instantie.
|
||||
* @return void
|
||||
@@ -128,7 +128,7 @@ class PluginManager
|
||||
* Per plugin wordt het hoofdbestand (<naam>.php) geïncludeerd, de plugin-class
|
||||
* geïnstantieerd, en action- en filter-hooks automatisch geregistreerd.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
@@ -179,7 +179,7 @@ class PluginManager
|
||||
/**
|
||||
* Registreer een action-callback voor een hook.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param string $hook Naam van de action-hook.
|
||||
* @param callable $callback De callback die bij de hook wordt uitgevoerd.
|
||||
@@ -194,7 +194,7 @@ class PluginManager
|
||||
/**
|
||||
* Registreer een filter-callback voor een hook.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param string $hook Naam van de filter-hook.
|
||||
* @param callable $callback De callback die de waarde filtert.
|
||||
@@ -209,7 +209,7 @@ class PluginManager
|
||||
/**
|
||||
* Voer alle geregistreerde callbacks voor een action-hook uit.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param string $hook Naam van de action-hook.
|
||||
* @param mixed ...$args Argumenten die aan elke callback worden doorgegeven.
|
||||
@@ -229,7 +229,7 @@ class PluginManager
|
||||
/**
|
||||
* Pas alle geregistreerde filter-callbacks toe op een waarde.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param string $hook Naam van de filter-hook.
|
||||
* @param mixed $value De initiële waarde die wordt gefilterd.
|
||||
@@ -251,7 +251,7 @@ class PluginManager
|
||||
/**
|
||||
* Haal een specifieke plugin-instantie op.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param string $name Plugin-naam (directorynaam).
|
||||
* @return object|null De plugin-instantie of null indien niet geladen.
|
||||
@@ -264,7 +264,7 @@ class PluginManager
|
||||
/**
|
||||
* Haal alle geladen plugin-instanties op.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @return array<string,object> Plugin-instanties geïndexeerd op naam.
|
||||
*/
|
||||
@@ -276,7 +276,7 @@ class PluginManager
|
||||
/**
|
||||
* Haal de lijst met ingeschakelde plugin-namen op.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @return array<int,string> Lijst met ingeschakelde plugin-namen.
|
||||
*/
|
||||
@@ -288,7 +288,7 @@ class PluginManager
|
||||
/**
|
||||
* Controleer of een plugin is ingeschakeld.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param string $pluginName Plugin-naam (directorynaam).
|
||||
* @return bool True indien de plugin is ingeschakeld.
|
||||
@@ -304,7 +304,7 @@ class PluginManager
|
||||
* Standaardwaarden uit plugin.json `settings` worden samengevoegd met
|
||||
* overrides uit het config.json van de plugin.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param string $pluginName Plugin-naam (directorynaam).
|
||||
* @return array<string,mixed> Opgeloste configuratie als [key => value].
|
||||
@@ -341,7 +341,7 @@ class PluginManager
|
||||
* 2. CMS site-config `language.default`
|
||||
* 3. 'nl'
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param string $pluginName Plugin-directorynaam.
|
||||
* @return string Taalcode (bijv. 'nl', 'en').
|
||||
@@ -363,7 +363,7 @@ class PluginManager
|
||||
*
|
||||
* Fallback-keten: aangevraagde taal -> standaardtaal van de plugin -> lege array.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param string $pluginName Plugin-directorynaam.
|
||||
* @param string $lang Aangevraagde taalcode.
|
||||
@@ -408,7 +408,7 @@ class PluginManager
|
||||
* Geeft een associatieve array terug, geïndexeerd op plugin-naam:
|
||||
* ['Statistics' => [...], 'Logs' => [...], ...]
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param string $lang Aangevraagde taalcode.
|
||||
* @param string $context 'admin' of 'site'.
|
||||
@@ -430,7 +430,7 @@ class PluginManager
|
||||
*
|
||||
* Een plugin is viewable tenzij zijn configuratie 'viewable' expliciet op false zet.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param object $plugin De plugin-instantie.
|
||||
* @return bool True indien de plugin viewable is.
|
||||
@@ -450,7 +450,7 @@ class PluginManager
|
||||
* Elke plugin met een getSidebarContent()-methode levert HTML die wordt
|
||||
* ingepakt in een Bootstrap-card met de plugin-titel.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param array<int,string>|null $allowedPlugins Optionele whitelist van plugin-namen.
|
||||
* @return string De samengevoegde sidebar-HTML.
|
||||
@@ -496,7 +496,7 @@ class PluginManager
|
||||
/**
|
||||
* Haal CSS-URL's op van alle ingeschakelde plugins die getCssUrl() implementeren.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @return array<int,string> Lijst met CSS-URL's.
|
||||
*/
|
||||
@@ -519,7 +519,7 @@ class PluginManager
|
||||
*
|
||||
* Elke plugin levert [['route' => 'plugin-name/action', 'label' => 'Label', 'icon' => 'bi-icon']].
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @return array<int,array<string,mixed>> Admin-menu-items van alle plugins.
|
||||
*/
|
||||
@@ -545,7 +545,7 @@ class PluginManager
|
||||
* Plugins implementeren handleAdminRoute(string $action): ?string
|
||||
* (geeft gerenderde HTML of null terug).
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param string $pluginName Plugin-naam.
|
||||
* @param string $action Actie/sub-route binnen de plugin.
|
||||
@@ -566,7 +566,7 @@ class PluginManager
|
||||
/**
|
||||
* Bepaal welke plugin een opgegeven admin-route afhandelt.
|
||||
*
|
||||
* @since 2.6.4
|
||||
* @since 2.6.5
|
||||
*
|
||||
* @param string $route De admin-route (bijv. 'statistics' of 'statistics/details').
|
||||
* @return array<string,mixed>|null ['plugin' => naam, 'action' => actie, 'permission' => vereiste permissie] of null.
|
||||
|
||||
Reference in New Issue
Block a user