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
116 lines
5.2 KiB
Markdown
116 lines
5.2 KiB
Markdown
# 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 `ContentBackup` class (`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.json` ondersteunt nu `type`, `essential` en `hasConfig` velden
|
|
- 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 het `type` veld uit zowel `plugin.json` als de PHP class
|
|
|
|
### Plugin API architectuur
|
|
- Nieuwe `PluginAPIInterface` interface voor consistente plugin API toegang
|
|
- Nieuwe `AdminPluginAPI` class voor admin-context plugins (light-weight, alleen config toegang)
|
|
- `CMSAPI` en `AdminPluginAPI` implementeren beide `PluginAPIInterface`
|
|
- Admin sidebar toont alleen menu-items van actieve (enabled) plugins
|
|
|
|
---
|
|
|
|
## Verbeteringen
|
|
|
|
### Config
|
|
- Dubbele `enabled_plugins` config opgelost: `plugins.enabled` verwijderd, alleen `enabled_plugins` op 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_plugins` i.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 toegevoegd
|
|
- `plugins.md` — Plugin types (system/content), essential flag, protected plugins gedocumenteerd
|
|
- `plugin-development.md` — Volledig herschreven met juiste plugin.json velden, class-structuur, API via setAPI(), hooks, admin integratie, CSS
|
|
- `core-classes.md` — Juiste paden, doAction/applyFilters i.p.v. executeHook, CMSAPI/AdminPluginAPI/AdminAuth/LogManager toegevoegd
|
|
- `theme-json.md` — Juiste structuur met `config.default_template` en `template`
|
|
- `layouts.md` — `layouts`→`template`, `default_layout`→`config.default_template`
|
|
- `scss-styling.md` — CSS output pad gecorrigeerd naar `assets/css_compiled/`
|
|
- `admin-beheerder.md` — Media en Update secties toegevoegd
|
|
- `nieuw-thema.md` — guide.twig toegevoegd
|
|
- `architectuur.md` — Mappenstructuur uitgebreid met alle key directories
|
|
|
|
### Tests
|
|
- Accessibility test-script verbeterd: `grep -E` i.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.php`
|
|
- `AssetManager.php`, `ContentSecurityPolicy.php`, `EnhancedSecurity.php`
|
|
- `SearchEngine.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.twig` en `statistics.twig` — vervangen door Logs en Statistics plugins
|
|
- `test-guide.php` — verwijderd
|
|
|
|
### Verwijderde bestanden
|
|
- `cms/lang/en.php`, `cms/lang/nl.php` — verplaatst naar `language/` 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
|
|
1. Maak een backup van de huidige content map
|
|
2. Pull de nieuwe code
|
|
3. Run `composer install` om dependencies bij te werken
|
|
4. Controleer `config.json` — verwijder `plugins.enabled` als deze nog bestaat (gebruik `enabled_plugins` op top-level)
|
|
5. Test de website
|
|
6. Optioneel: initialiseer git in content/ via Admin → Backup & Restore → Git init |