Files
CodePress/TODO.md
T
E.Noorlander 6d5ca7cab4 v2.6.1d (Lyra): Plugin i18n, plugin editor vernieuwd, media invoegen
Plugin internationalisatie: plugins hebben eigen language/ mappen. Systeem
plugins volgen admin taal (admin.php), content plugins volgen content taal
(site.php). Fallback chain: geselecteerd -> plugin default_language -> CMS
default. PluginManager/AdminPluginAPI/CMSAPI uitgebreid met
getPluginTranslations()/t(). plugin.json settings ondersteunen
label_key/help_key/option_label_key.

Plugin uniformiteit: alle 6 plugins hebben uniforme structuur (README.md,
assets/.gitkeep, language/nl|en/). plugins/README.md herschreven.
guide plugin-development.md (NL+EN) volledig herschreven.

Plugin editor vernieuwd: geneste bestandsbrowser zijbalk, nieuw bestand
aanmaken, uploaden naar assets/, verwijderen en verplaatsen. Nieuwe routes:
plugins-file-upload, plugins-file-delete, plugins-file-move. Path-traversal
bescherming + protected plugins geblokkeerd.

Media invoegen in editor: nieuw /admin/media-list JSON endpoint + herbruikbare
_media-modal.twig include. Plugin-context scant assets/ map. editor-toolbar.js
modeMap uitgebreid voor css/scss/js/json.

Plugin overzicht knoppen: alleen iconen met title/aria-label.

Tests: pentest 30/30, WCAG 2.1 AA 25/25.
2026-08-18 13:49:52 +00:00

7.9 KiB

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.

Bug fixes

  • admin rollen werkt niet goed, dashboard geeft een 404, de plugin's moeten aangege welke rol nodig is.
  • user admin mag nooit zijn eigen rol weizigen.
  • Na in loggen moet de admin zijn rol binnen de /admin kunnen veranderen om andere rollen te kunnen testen
  • in een andere rol kan de gebruiker niet zijn eigen wachtwoord veranderen.
  • Bij het aanmaken van een pagina in de content moet de auteur naam en email in de meta komen te staan. Deze moeten dus ook door middel van de api aan de twig bestanden doorgeven kunnen worden
  • Admin taal niet volledig geïntegreerd met plugins: plugins hebben nu eigen language/ mappen (nl/en). Systeem plugins volgen admin taal (admin.php), content plugins volgen content taal (site.php). Fallback chain: geselecteerd → plugin default_language → CMS default → leeg. PluginManager + AdminPluginAPI + CMSAPI uitgebreid met getPluginTranslations()/t(). plugin.json settings ondersteunen label_key/help_key/option_label_key.
  • Plugin uniformiteit: alle 6 plugins hebben nu een uniforme structuur (.php, plugin.json, README.md, assets/.gitkeep, language/nl|en/). plugins/README.md herschreven. guide plugin-development.md (NL+EN) volledig bijgewerkt met i18n + admin integratie + instellingen-schema. guide architectuur.md (NL+EN) bijgewerkt met plugin language/ map.
  • Plugin editor toont alleen de .php maar een plugin kan uit meerdere bestanden bestaan: plugins-edit pagina heeft nu een bestandsbrowser zijbalk die alle bestanden in de plugin-map toont (.php, .json, .md, .html, .css, .scss, .js) inclusief language/ en assets/ submappen. Nieuw-bestand knop met modal. Path-traversal bescherming via realpath + prefix check + segment-guard. scanPluginFiles() helper toegevoegd. editor-toolbar.js modeMap uitgebreid voor css/scss/js/json. Vertaalstrings toegevoegd aan nl/en/de admin.php.
  • Plugin editor uploaden en verwijderen: plugins-edit pagina heeft nu een Upload knop (bestanden naar assets/ van de plugin) en per-bestand verwijder-knop in de bestandsboom. Twee nieuwe routes: plugins-file-upload en plugins-file-delete. Path-traversal bescherming + protected plugins geblokkeerd + dotfiles geweigerd. Vertaalstrings toegevoegd.
  • Plugin editor bestand verplaatsen: plugins-edit pagina heeft nu per-bestand een verplaats-knop in de bestandsboom. Nieuwe route plugins-file-move + template plugins-move-form.twig (dropdown met mappen binnen de plugin, plugin root als optie, huidige map uitgesloten). Path-traversal bescherming + protected plugins geblokkeerd.

Nice to have

  • 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

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

v2.6.1d (2026-08-18)

  • Pentest controles uitgevoerd (30/30)
  • WCAG 2.1 AA accessibility tests (25/25)
  • Plugin internationalisatie (i18n): plugins hebben eigen language/ mappen, systeem plugins volgen admin taal, content plugins volgen content taal, fallback chain
  • Plugin uniformiteit: alle 6 plugins hebben uniforme structuur (README.md, assets/.gitkeep, language/nl|en/)
  • Plugin editor vernieuwd: bestandsbrowser zijbalk (geneste boom), nieuw bestand aanmaken, uploaden, verwijderen, verplaatsen
  • Media invoegen in editor: nieuw /admin/media-list JSON endpoint + herbruikbare _media-modal.twig include; plugin-context scant assets/ map
  • Plugin overzicht knoppen: alleen iconen met title/aria-label
  • README.md en handleidingen in guide/ doorgeloken en bijgewerkt (plugin-development.md NL+EN volledig herschreven, architectuur.md NL+EN bijgewerkt)
  • Verslag gemaakt (docs/release-notes/v2.6.1d.md)
  • Versie verhoogd naar 2.6.1d

v2.6.1c (2026-08-17)

  • Pentest controles uitgevoerd (30/30)
  • WCAG 2.1 AA accessibility tests (25/25)
  • README.md en handleidingen in guide/ doorgeloken en bijgewerkt
  • Admin gebruikersbeheer opnieuw ontworpen (lijst + zoeken/filter + profiel + wachtwoord)
  • CLI commando voor admin wachtwoord reset (cli/reset-admin-password.php)
  • Verslag gemaakt (docs/release-notes/v2.6.1c.md)
  • Versie verhoogd naar 2.6.1c

v2.6.1 (2026-08-17)

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

v2.6.0 (2026-08-15)

  • Pentest controles uitgevoerd (30/30)
  • WCAG 2.1 AA accessibility tests (25/25)
  • Verslag gemaakt (docs/release-notes/v2.6.0.md)
  • Versie verhoogd naar 2.6.0