New features: - ContentBackup class with ZIP backup/restore and git versioning - Admin backup & restore page (content-backup.twig) with git init/commit/log/restore - Plugin type system: system (blue) vs content (green) with visual badges - PluginAPIInterface + AdminPluginAPI for plugin architecture - Essential plugin flag (cannot edit/deactivate/delete) Improvements: - Consolidated enabled_plugins config (removed plugins.enabled) - Removed Analytics/Logging toggles from admin config page - Fixed Dashboard plugin Twig comments rendered as text - Updated 20 guide files (NL+EN): configuratie, plugins, plugin-development, core-classes, theme-json, layouts, scss-styling, admin-beheerder, nieuw-thema, architectuur - Improved accessibility test script (grep -E, min/max checks) Cleanup: - Removed unused classes: ARIAComponents, AccessibilityManager, ContentSecurityPolicy, etc. - Removed vendor packages: mustache/mustache, php-mqtt/client - Removed old templates: logs.twig, statistics.twig (now plugins) - Moved language files to language/ directory Tests: - Pentest: 30/30 passed, 0 vulnerabilities - WCAG 2.1 AA: 25/25 passed, 100% compliance
5.2 KiB
5.2 KiB
CodePress CMS v2.6.0 — Release Notes
Release datum: 2026-08-15
Codename: Atlas
Status: stable
Nieuwe features
Content backup & restore met git versioning
- Nieuwe
ContentBackupclass (cms/core/class/ContentBackup.php) voor ZIP backup/restore en git-based versiebeheer van de content map - Admin pagina Backup & Restore (
/admin/content-backup) met:- ZIP download van de volledige content-map
- Restore vanuit een geüploade ZIP (met automatische backup van huidige content)
- Git init, commit, log en restore-to-commit functionaliteit
- Content git repository staat los van de CodePress hoofd-repo (content/ is in .gitignore)
- 5 nieuwe admin routes:
content-backup,content-restore,content-git-init,content-git-commit,content-git-restore - Backup-knop toegevoegd op de content beheer pagina
Plugin type systeem
- Plugins worden nu onderscheiden als system (blauwe badge,
bi-gear-fill) of content (groene badge,bi-puzzle-fill) plugin.jsonondersteunt nutype,essentialenhasConfigvelden- Essentiële plugins (zoals Navigation) kunnen niet worden bewerkt, gedeactiveerd of verwijderd
- Visueel onderscheid op de plugins-pagina met gekleurde card-borders en type-badges
handlePlugins()in admin.php leest hettypeveld uit zowelplugin.jsonals de PHP class
Plugin API architectuur
- Nieuwe
PluginAPIInterfaceinterface voor consistente plugin API toegang - Nieuwe
AdminPluginAPIclass voor admin-context plugins (light-weight, alleen config toegang) CMSAPIenAdminPluginAPIimplementeren beidePluginAPIInterface- Admin sidebar toont alleen menu-items van actieve (enabled) plugins
Verbeteringen
Config
- Dubbele
enabled_pluginsconfig opgelost:plugins.enabledverwijderd, alleenenabled_pluginsop top-level in config.json - Analytics & Logging toggles verwijderd van de admin config pagina (instellingen blijven in config.json beschikbaar)
- Alle admin.php handlers gebruiken nu consistent
enabled_pluginsi.p.v.plugins.enabled
Dashboard
- Twig-commentaren
{# ... #}verwijderd uit Dashboard plugin PHP output — deze werden als platte tekst gerenderd
Handleidingen (20 bestanden bijgewerkt, NL + EN)
configuratie.md— Analytics/Logging verwijderd, Homepage + Admin taal toegevoegdplugins.md— Plugin types (system/content), essential flag, protected plugins gedocumenteerdplugin-development.md— Volledig herschreven met juiste plugin.json velden, class-structuur, API via setAPI(), hooks, admin integratie, CSScore-classes.md— Juiste paden, doAction/applyFilters i.p.v. executeHook, CMSAPI/AdminPluginAPI/AdminAuth/LogManager toegevoegdtheme-json.md— Juiste structuur metconfig.default_templateentemplatelayouts.md—layouts→template,default_layout→config.default_templatescss-styling.md— CSS output pad gecorrigeerd naarassets/css_compiled/admin-beheerder.md— Media en Update secties toegevoegdnieuw-thema.md— guide.twig toegevoegdarchitectuur.md— Mappenstructuur uitgebreid met alle key directories
Tests
- Accessibility test-script verbeterd:
grep -Ei.p.v. basic regex, min/max checks i.p.v. exacte waarden, patroon<nav[ >]i.p.v.<nav>voor tags met attributes - Pentest: 30/30 tests geslaagd, 0 vulnerabilities
- WCAG 2.1 AA: 25/25 tests geslaagd, 100% compliance
Opschoning
Verwijderde ongebruikte classes
ARIAComponents.php,AccessibilityManager.php,AccessibleTemplate.phpAssetManager.php,ContentSecurityPolicy.php,EnhancedSecurity.phpSearchEngine.php,SimpleTemplate.php,CodePressCMS.php.backup
Verwijderde vendor packages
mustache/mustache— niet meer gebruikt (Twig is de template engine)php-mqtt/client— niet meer gebruikt
Verwijderde templates
logs.twigenstatistics.twig— vervangen door Logs en Statistics pluginstest-guide.php— verwijderd
Verwijderde bestanden
cms/lang/en.php,cms/lang/nl.php— verplaatst naarlanguage/map
Beveiliging
- Pentest suite: 30/30 tests geslaagd (XSS, path traversal, PHP injection, null byte, command injection, template injection, HTTP header injection, information disclosure, security headers, DoS)
- Security headers aanwezig: X-Frame-Options, Content-Security-Policy, X-Content-Type-Options
- Geen vulnerabilities gedetecteerd
Accessibility
- WCAG 2.1 AA: 25/25 tests geslaagd (100%)
- ARIA landmarks aanwezig (25+ per pagina)
- Semantic HTML structuur (header, nav, main, footer)
- Skip-to-content links, focus indicators, screen reader support
- Mobile viewport en touch targets aanwezig
Systeem vereisten
- PHP >= 8.0
- Extensies: json, mbstring
- Optioneel: opcache (aanbevolen voor performance)
- Git (optioneel, voor content versioning feature)
- ZipArchive (optioneel, voor ZIP backup/restore feature)
Upgraden
- Maak een backup van de huidige content map
- Pull de nieuwe code
- Run
composer installom dependencies bij te werken - Controleer
config.json— verwijderplugins.enabledals deze nog bestaat (gebruikenabled_pluginsop top-level) - Test de website
- Optioneel: initialiseer git in content/ via Admin → Backup & Restore → Git init