v2.6.7 (Lyra): Essential plugins consistent tonen + docblock-vereiste
Vervolg op v2.6.6: vier plekken lazen nog ruwe enabled_plugins zonder essential-forcering. handleDashboard(), handleContentFiles/Edit() en AdminPluginAPI::getEnabledPlugins() forceren nu essential plugins consistent met PluginManager. Dode functie countEnabledPlugins() verwijderd. AGENTS.md aangevuld met verplichte docblock-sectie.
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
# v2.6.7 (Lyra) — Essential plugins consistent tonen + docblock-vereiste
|
||||
|
||||
Releasedatum: 2026-08-27
|
||||
Codename: Lyra
|
||||
Status: stable
|
||||
|
||||
## Samenvatting
|
||||
|
||||
Vervolg op v2.6.6 (essential plugins altijd laden). In v2.6.6 forcerde
|
||||
alleen `PluginManager::loadPlugins()` het laden van essential plugins —
|
||||
maar vier andere plekken in de code lazen nog de ruwe
|
||||
`config.enabled_plugins` zonder essential-forcering, waardoor
|
||||
essential/protected plugins (Dashboard, Navigation) op diverse plekken
|
||||
als "Inactief" of onzichtbaar toonden, ondanks dat ze effectief draaiden.
|
||||
|
||||
Deze release maakt alle plekken die plugin-status bepalen consistent met
|
||||
`PluginManager`. Daarnaast is de docblock-vereiste formeel vastgelegd in
|
||||
`AGENTS.md`.
|
||||
|
||||
## Wijzigingen
|
||||
|
||||
### `cms/core/plugin/AdminPluginAPI.php`
|
||||
- `getEnabledPlugins()` bevraagt nu de geïnjecteerde PluginManager (single
|
||||
source of truth) wanneer aanwezig. Fallback (zonder PluginManager) doet
|
||||
zelf een essential-scan over de plugins-directory, consistent met
|
||||
`PluginManager::loadPlugins()`. Essential plugins worden altijd
|
||||
geretourneerd, ook als ze niet in `config.enabled_plugins` staan.
|
||||
|
||||
### `public/admin.php`
|
||||
- `handleDashboard()` (plugin-overzicht op `/admin/dashboard`): `enabled`
|
||||
wordt `true` voor protected/essential plugins via `isProtectedPlugin()`.
|
||||
Eerder toonde het dashboard essential plugins als inactief als ze uit
|
||||
`enabled_plugins` raakten.
|
||||
- `handleContentFiles()` en `handleContentEdit()` (content-editor
|
||||
plugin-multiselect): essential/protected content-plugins worden altijd
|
||||
getoond in de selector (via `isProtectedPlugin()`). Eerder ontbrak
|
||||
`Navigation` uit de keuzelijst als die niet in `enabled_plugins` stond,
|
||||
terwijl hij effectief draaide.
|
||||
- Dode functie `countEnabledPlugins()` verwijderd (nergens aangeroepen).
|
||||
|
||||
### `AGENTS.md`
|
||||
- Nieuwe sectie `Docblocks (verplicht)`: elke plugin, theme, class, method
|
||||
en function (ook private/protected) krijgt een WordPress-stijl docblock.
|
||||
Bevat het vereiste formaat met `@since`, `@param`, `@return` en de
|
||||
`{ @type }` array-structuur. Controle bij elke verandering.
|
||||
|
||||
## Consistentie-check (alle 17 plekken)
|
||||
|
||||
Alle plekken die plugin-status bepalen zijn gecontroleerd. Na v2.6.7 leest
|
||||
geen enkele plek meer de ruwe `enabled_plugins` zonder essential-forcering:
|
||||
|
||||
| Plek | Voor v2.6.7 | Na v2.6.7 |
|
||||
|------|-------------|-----------|
|
||||
| `PluginManager::loadPlugins()` | ✅ v2.6.6 | ✅ |
|
||||
| `PluginManager::isEnabled()` | ✅ | ✅ |
|
||||
| `CodePressCMS` (front-end) | ✅ (via PM) | ✅ |
|
||||
| `handleDashboard()` admin.php:670 | ❌ ruw | ✅ geforceerd |
|
||||
| `handleContentFiles()` admin.php:1272 | ❌ ruw | ✅ geforceerd |
|
||||
| `handleContentEdit()` admin.php:1973 | ❌ ruw | ✅ geforceerd |
|
||||
| `handlePlugins()` admin.php:3827 | ✅ v2.6.6 | ✅ |
|
||||
| `handlePluginsToggle()` admin.php:5252 | ✅ v2.6.6 | ✅ |
|
||||
| `AdminPluginAPI::getEnabledPlugins()` | ❌ ruw | ✅ via PM |
|
||||
| `Dashboard.php` (plugin) | via API | ✅ via gefixte API |
|
||||
| guide-sidebar (admin.php:5650) | ✅ direct require | ✅ |
|
||||
| `config.php` default | ✅ bevat Navigation | ✅ |
|
||||
| `countEnabledPlugins()` | dode code | verwijderd |
|
||||
|
||||
## Tests uitgevoerd
|
||||
|
||||
- `php -l` over alle PHP-bestanden (zonder vendor): 0 syntax-errors.
|
||||
- Functionele tests (`cli/test/functional/run-tests.sh` tegen Apache):
|
||||
16/16 PASS (100%).
|
||||
- Pentest (`cli/test/pentest/pentest.sh`): 29/29 SAFE, 0 vulnerabilities.
|
||||
- Accessibility / WCAG 2.1 AA (`cli/test/accessibility.sh`): 25/25 PASS.
|
||||
- Runtime-check `AdminPluginAPI::getEnabledPlugins()` met lege
|
||||
`enabled_plugins`: retourneert `Dashboard`+`Navigation` (zowel via PM
|
||||
als via fallback).
|
||||
- Runtime-check `handleDashboard()` simulatie met lege
|
||||
`enabled_plugins`: `Dashboard`+`Navigation` tonen `enabled=true`.
|
||||
- Runtime-check content-editor selector met lege `enabled_plugins`:
|
||||
`Navigation` zichtbaar (essential content-plugin).
|
||||
|
||||
## Upgrade-instructies
|
||||
|
||||
1. Pull de nieuwe versie.
|
||||
2. Geen verdere actie nodig — alle plekken tonen essential plugins nu
|
||||
consistent als actief, ongeacht de staat van `enabled_plugins` in
|
||||
`config.json`.
|
||||
Reference in New Issue
Block a user