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
114 lines
5.3 KiB
Markdown
114 lines
5.3 KiB
Markdown
# 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 | |