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
This commit is contained in:
root
2026-08-17 14:48:46 +00:00
parent e0e6e28dcc
commit 2d9ffaa942
53 changed files with 576 additions and 3964 deletions
+114
View File
@@ -0,0 +1,114 @@
# 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
- `.gitignore``node_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 |