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.
34 lines
1.9 KiB
Markdown
34 lines
1.9 KiB
Markdown
# CMS Architectuur
|
|
|
|
```
|
|
codepress/
|
|
├── cms/core/ # Core engine
|
|
│ ├── class/ # CodePressCMS, ThemeManager, Logger, Analytics
|
|
│ ├── plugin/ # PluginManager, PluginAPIInterface, CMSAPI, AdminPluginAPI
|
|
│ ├── config.php # Config loader
|
|
│ └── index.php # Bootstrap
|
|
├── admin/ # Admin console
|
|
│ ├── config/ # app.php, admin.json
|
|
│ ├── src/ # AdminAuth
|
|
│ └── theme/default/views/ # Twig templates
|
|
├── themes/ # Thema's (default, ...)
|
|
├── plugins/ # Plugins (Dashboard, HTMLBlock, Navigation, ...)
|
|
│ └── <Plugin>/ # Elke plugin heeft:
|
|
│ ├── <Plugin>.php # Hoofd class
|
|
│ ├── plugin.json # Metadata + instellingen
|
|
│ ├── README.md # Documentatie
|
|
│ ├── assets/ # CSS/JS/SCSS
|
|
│ └── language/ # Plugin vertalingen (nl/, en/, ...; admin.php/site.php)
|
|
├── content/ # Content bestanden (.md, .php, .html)
|
|
├── language/ # Core CMS taalbestanden (nl/, en/, de/; site.php + admin.php)
|
|
├── guide/ # Handleidingen (nl/, en/)
|
|
├── public/ # Web root
|
|
│ ├── index.php # Website entry point
|
|
│ └── admin.php # Admin entry point + router
|
|
├── config.json # Site configuratie
|
|
└── version.php # Versie info
|
|
```
|
|
|
|
## Plugin i18n
|
|
|
|
Plugins hebben hun eigen `language/` map met vertalingen. Systeem plugins volgen de admin taal (`language/<lang>/admin.php`), content plugins volgen de content taal (`language/<lang>/site.php`). Fallback chain: geselecteerde taal → plugin `default_language` → CMS site default → lege array. Zie `guide/nl/codepress-developer/plugin-development.md` voor details. |