# TODO

## Voor elke versie verhoging. Deze nooit weghalen.
- [ ] Pentest controles uitgevoerd 
- [ ] WCAG 2.1 AA accessibility tests
- [ ] Volledige git commit maken.
- [ ] Verslag maken voor opdrcht gever
- [ ] Na convormatie versie verhogen
- [ ] Bij Voltooid versie ophoging aanmaken en deze allemaal unvinken voor volgende ronde.

## Te doen ⏳

- [ ] Multidomein implementeren (elk domein = eigen thema + content, één admin + site name)
    - [ ] Fase 1: Config-resolutie
        - [ ] For apache instants domein settings /public/noorlander.info/ or /public/mycode.name/
        - [ ] config.domains.json (registry: host, aliases, redirect, config) + .example
        - [ ] cms/core/domain.php: normalizeHost/getDomainRegistry/resolveDomain/loadSiteConfigForHost
        - [ ] cms/core/config.php refactor → herbruikbare functie, compatibel blijven
        - [ ] Per-domein config-bestanden (content_dir, active_theme) in the main content dir. like: /content/domain1 /content/domain2 os /content/noorlander.info/ /content/mycode.name/
    - [ ] Fase 2: Front-end
        - [ ] cms/router.php: taal-prefix dynamisch uit actieve config
        - [ ] public/.htaccess: generieke `([a-z]{2})` taalregel
        - [ ] CodePressCMS::getCurrentLanguage(): validatie via config['language']['available']
        - [ ] getInternalHosts(): registry-hosts toevoegen (cross-domein links = intern)
        - [ ] public/index.php: /-media/ en /-assets/ via actieve content_dir
    - [ ] Fase 3: Admin (domeinbeheer + switch)
        - [ ] admin/config/app.php: domains_json pad
        - [ ] public/admin.php: $_SESSION['admin_domain'] + routes domains/domain-switch
        - [ ] domains.twig + sidebar-item/badge in admin.twig
        - [ ] Bestaande handlers laten werken op actief domein (config_json/content_dir patchen)
    - [ ] Fase 4: Housekeeping
        - [ ] .gitignore: config.*.json, content-*/
        - [ ] AGENTS.md + config.json.example bijwerken
    - [ ] Verificatie: php -l, curl met Host-header, domein-switch in admin testen

## Voltooid ✅

- [x] Admin code en niet gebruikte mappen/bestanden opschonen
- [x] version.php changelog verwijderen (staat in git)
- [x] Guide mappenstructuur reorganiseren (NL/EN → rollen)
- [x] README.md compacter maken met verwijzingen naar guide
- [x] Admin dashboard template check — Twig-commentaren `{# ... #}` verwijderd uit Dashboard.php
- [x] Plugins — zichtbaar verschil tussen system en content plugins (badge + border + icoon in plugins.twig)
- [x] Plugins — alleen actieve plugins zichtbaar in sidebar (PluginManager laadt alleen enabled plugins)
- [x] Plugins — dubbele enabled_plugins config opgelost (plugins.enabled verwijderd, alleen enabled_plugins op top-level)
- [x] Admin config — Analytics & Logging toggles verwijderd van config-pagina
- [x] Handleidingen gecontroleerd en bijgewerkt (20 bestanden NL+EN: configuratie, plugins, plugin-development, core-classes, theme-json, layouts, scss-styling, admin-beheerder, nieuw-thema, architectuur)
- [x] Content backup/restore optie + content-git repository integratie (ContentBackup class, content-backup.twig, ZIP backup/restore, git init/commit/log/restore)
- [x] Pentest controles uitgevoerd (30/30 tests geslaagd — 0 vulnerabilities)
- [x] WCAG 2.1 AA accessibility tests (25/25 tests geslaagd — 100% compliance, test-script verbeterd met min/max checks en grep -E)

## v2.6.1 (2026-08-17) ✅
- [x] Pentest controles uitgevoerd (30/30)
- [x] WCAG 2.1 AA accessibility tests (25/25)
- [x] README.md en handleidingen in guide/ doorgeloken en bijgewerkt
- [x] Installatie instructies toegevoegd aan README (Apache2/Nginx/PHP/composer)
- [x] Verwijderde vendor packages: php-mqtt/client, mustache/mustache (uit composer + autoloader)
- [x] Verslag gemaakt (docs/release-notes/v2.6.1.md)
- [x] Versie verhoogd naar 2.6.1

## v2.6.0 (2026-08-15) ✅
- [x] Pentest controles uitgevoerd (30/30)
- [x] WCAG 2.1 AA accessibility tests (25/25)
- [x] Verslag gemaakt (docs/release-notes/v2.6.0.md)
- [x] Versie verhoogd naar 2.6.0
