Files
CodePress/docs/release-notes/v2.6.7.md
T
E.Noorlander d039114f21 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.
2026-08-27 20:13:20 +00:00

88 lines
4.0 KiB
Markdown

# 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`.