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 Architecture
|
|
|
|
```
|
|
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/ # Themes (default, ...)
|
|
├── plugins/ # Plugins (Dashboard, HTMLBlock, Navigation, ...)
|
|
│ └── <Plugin>/ # Each plugin has:
|
|
│ ├── <Plugin>.php # Main class
|
|
│ ├── plugin.json # Metadata + settings
|
|
│ ├── README.md # Documentation
|
|
│ ├── assets/ # CSS/JS/SCSS
|
|
│ └── language/ # Plugin translations (nl/, en/, ...; admin.php/site.php)
|
|
├── content/ # Content files (.md, .php, .html)
|
|
├── language/ # Core CMS language files (nl/, en/, de/; site.php + admin.php)
|
|
├── guide/ # Guides (nl/, en/)
|
|
├── public/ # Web root
|
|
│ ├── index.php # Website entry point
|
|
│ └── admin.php # Admin entry point + router
|
|
├── config.json # Site configuration
|
|
└── version.php # Version info
|
|
```
|
|
|
|
## Plugin i18n
|
|
|
|
Plugins have their own `language/` directory with translations. System plugins follow the admin language (`language/<lang>/admin.php`), content plugins follow the content language (`language/<lang>/site.php`). Fallback chain: selected language → plugin `default_language` → CMS site default → empty array. See `guide/en/codepress-developer/plugin-development.md` for details. |