Files
CodePress/docs/release-notes/v2.6.1.md
T
root c2cf08955b v2.6.1 (Lyra): Welcome page, 404 handling, installatie docs, opschoning
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
2026-08-17 14:48:46 +00:00

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 in language/*/site.php)
  • isContentDirEmpty() filtert nu verborgen bestanden (zoals .gitkeep) zodat een map met alleen een .gitkeep als leeg wordt herkend

404-afhandeling binnen het actieve theme

  • Nieuwe statische 404 pagina in admin/static/404.html met 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 uit admin/static/404.html en geeft deze als page content terug (layout full_content)
  • render() zet de juiste http_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-page in 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 van localhost:8080
  • Functionele tests opgeschoond: tests die naar niet-bestaande demo/ content pagina's verwezen vervangen door werkende tests

Documentatie

  • README.md en README.en.md bijgewerkt: 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.md versie referenties bijgewerkt naar 2.6.1
  • AGENTS.md samengevoegd naar de root map (./AGENTS.md); ./development/AGENTS.md is 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 compilatie
  • src/scss/ map — was voor NPM sass build, overbodig na verwijderen van package.json
  • .htaccess (root) — Apache docroot is public/, deze root .htaccess werd niet geserveerd
  • themes/demo/ — niet actief in config.json (gebruikt default), alleen genoemd als voorbeeld

Opschoning referenties

  • README.md en README.en.md — demo theme referenties verwijderd uit project structuur
  • guide/*/codepress-developer/architectuur.md — demo verwijdering uit mappenstructuur boom
  • themes/gen-preview.sh — hardcoded default demo test loop vervangen door dynamische */ loop
  • .gitignorenode_modules/, package-lock.json en .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
  • MQTTTracker referentie verwijderd uit functionele test script

Installatie documentatie

  • README.md en README.en.md bevatten 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_rewrite en AllowOverride All (voor clean URLs en asset-serving)

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. Test de website
  5. 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