Nieuwe features: - Welkomstpagina bij lege content-map (nieuwe installatie detectie) - 404-afhandeling binnen actieve theme via admin/static/404.html - HTTP 404 status bij onbekende pagina's en missende taalprefix Opschoning: - Verwijderd: package.json, src/scss/, root .htaccess, themes/demo/ - Verwijderde vendor packages: php-mqtt/client, mustache/mustache - AGENTS.md samengevoegd naar root, development/AGENTS.md verwijderd - .gitignore opgeschoond (NPM/node_modules/.sass-cache verwijderd) Documentatie: - Installatie instructies toegevoegd aan README (Apache2/Nginx/PHP/composer) - README en guide versie referenties bijgewerkt naar 2.6.1 - Release notes: docs/release-notes/v2.6.1.md Tests: - Pentest: 30/30 geslaagd, 0 vulnerabilities - WCAG 2.1 AA: 25/25 geslaagd, 100% compliance - Test scripts gebruiken Apache-URL i.p.v. localhost:8080
5.3 KiB
5.3 KiB
CodePress CMS v2.6.1 — Release Notes
Release datum: 2026-08-17
Codename: Lyra
Status: stable
Nieuwe features
Welkomstpagina bij lege content-map (nieuwe installatie)
- Wanneer de
content/map leeg is (nieuwe installatie), toont de CMS nu een duidelijke welkomstpagina - De pagina bevat een introductietekst, een lijst met volgende stappen en knoppen naar de admin console en handleiding
- Vertaald in NL, EN en DE (
welcome_*keys inlanguage/*/site.php) isContentDirEmpty()filtert nu verborgen bestanden (zoals.gitkeep) zodat een map met alleen een.gitkeepals leeg wordt herkend
404-afhandeling binnen het actieve theme
- Nieuwe statische 404 pagina in
admin/static/404.htmlmet een link naar de home pagina - De 404 inhoud wordt binnen het actieve theme gerenderd (met header, navigatie, footer en Bootstrap styling)
getError404()laadt de inhoud uitadmin/static/404.htmlen geeft deze als page content terug (layoutfull_content)render()zet de juistehttp_response_code(404)status bij niet-gevonden pagina's
HTTP 404 status bij onbekende pagina's en missende taalprefix
getPage()geeft een 404 als de URL geen geldige taalprefix bevat (bijv./random-pagein plaats van/nl/random-page)- Niet-bestaande pagina's binnen een taal (
/nl/nonexistent) geven nu ook een 404 in plaats van HTTP 200 - Eerder werd bij een lege content-map altijd de welkomstpagina getoond, ook voor niet-bestaande pagina's — dit is nu beperkt tot de home URL
Verbeteringen
Test scripts
- Test scripts (
pentest.sh,accessibility.sh,run-tests.sh) gebruiken nu de Apache-URL (http://development.codepress.noorlander.info) in plaats vanlocalhost:8080 - Functionele tests opgeschoond: tests die naar niet-bestaande
demo/content pagina's verwezen vervangen door werkende tests
Documentatie
README.mdenREADME.en.mdbijgewerkt: versie naar 2.6.1, multi-language talen gecorrigeerd (NL/EN/DE),admin/static/map toegevoegd aan project structuur- Guide index bestanden (
guide/nl/index.md,guide/en/index.md) bijgewerkt naar versie 2.6.1 guide/*/codepress-developer.mdversie referenties bijgewerkt naar 2.6.1AGENTS.mdsamengevoegd naar de root map (./AGENTS.md);./development/AGENTS.mdis verwijderd- AGENTS.md verduidelijkt welke URL bij welke map hoort en dat tests via Apache draaien (niet via PHP dev server)
Opschoning
Verwijderde ongebruikte bestanden
package.json— was voor NPM build (npm run build:css), runtime gebruikt scssphp (PHP) voor SCSS compilatiesrc/scss/map — was voor NPM sass build, overbodig na verwijderen vanpackage.json.htaccess(root) — Apache docroot ispublic/, deze root.htaccesswerd niet geserveerdthemes/demo/— niet actief inconfig.json(gebruiktdefault), alleen genoemd als voorbeeld
Opschoning referenties
README.mdenREADME.en.md— demo theme referenties verwijderd uit project structuurguide/*/codepress-developer/architectuur.md— demo verwijdering uit mappenstructuur boomthemes/gen-preview.sh— hardcodeddefault demo testloop vervangen door dynamische*/loop.gitignore—node_modules/,package-lock.jsonen.sass-cache/regels verwijderd (NPM niet meer gebruikt)
Verwijderde vendor packages
mustache/mustache— niet meer gebruikt (Twig is de template engine)php-mqtt/client— niet meer gebruikt- Beide packages verwijderd uit
composer.lock,vendor/composer/installed.json,installed.php, en de autoloader bestanden MQTTTrackerreferentie verwijderd uit functionele test script
Installatie documentatie
README.mdenREADME.en.mdbevatten nu een volledige installatie sectie met:- Vereisten (PHP ≥8.0, composer, extensies)
- Apache 2.4+ vhost voorbeeld met
mod_rewrite,mod_headers,AllowOverride All - Nginx server block voorbeeld met PHP-FPM, clean URLs, asset-serving en security headers
- Mappen rechten en test instructies
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 (24 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)
- Apache met
mod_rewriteenAllowOverride All(voor clean URLs en asset-serving)
Upgraden
- Maak een backup van de huidige content map
- Pull de nieuwe code
- Run
composer installom dependencies bij te werken - Test de website
- Optioneel: initialiseer git in content/ via Admin → Backup & Restore → Git init
Test resultaten samenvatting
| Test | Resultaat |
|---|---|
| Pentest | 30/30 geslaagd, 0 vulnerabilities |
| WCAG 2.1 AA Accessibility | 25/25 geslaagd, 100% compliance |