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

4.0 KiB

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.