- Admin guide: RBAC roles, role-based dashboard, plugin types (content/system) - CodePress developer guide: plugin types, admin plugin API, SCSS compilation, asset serving - Theme developer guide: SCSS sole CSS source, css_compiled read-only, guide layout - Content manager guide: layout selection from theme.json, plugin order in frontmatter - Both NL and EN updated with identical structure - 35 files updated
49 lines
2.1 KiB
Markdown
49 lines
2.1 KiB
Markdown
# Plugins
|
|
|
|
## Plugin types
|
|
|
|
CodePress kent twee soorten plugins, bepaald door het `type` veld in `plugin.json`:
|
|
|
|
- **Content plugins** (`type: "content"`) — Verschijnen in de sidebar en in de plugin selectie op content-edit pagina's. Bieden sidebar content via `getSidebarContent()`.
|
|
- **Systeem plugins** (`type: "system"`) — Worden geladen door PluginManager maar verschijnen NIET in de sidebar. Bieden functionaliteit via admin menu, routes en de CMSAPI. Geregistreerd via `getAdminMenu()` en `getAdminRoutes()`.
|
|
|
|
Bij afwezigheid van een `type` veld wordt `content` aangenomen.
|
|
|
|
## Essentiële plugins
|
|
|
|
Essentiële plugins zijn gedefinieerd in `getProtectedPlugins()` in `public/admin.php`. Huidige essentiële plugin: **Navigation**.
|
|
|
|
Deze plugins:
|
|
- Kunnen NIET worden gedeactiveerd
|
|
- Kunnen NIET worden bewerkt
|
|
- Kunnen NIET worden verwijderd
|
|
|
|
Op de plugins pagina krijgen ze een **Essentieel** badge i.p.v. de actieknoppen.
|
|
|
|
## Plugins beheren
|
|
|
|
- **Activeren/Deactiveren** — Plugin aan/uit zetten (niet voor essentiële plugins)
|
|
- **Bewerken** — Plugin code aanpassen in CodeMirror (niet voor essentiële plugins)
|
|
- **Configuratie** — Plugin instellingen bewerken
|
|
- **Verwijderen** — Plugin map verwijderen (niet voor essentiële plugins)
|
|
|
|
De admin plugins pagina toont een **Content** of **Systeem** badge per plugin.
|
|
|
|
## Nieuwe plugin aanmaken
|
|
|
|
1. Ga naar **Plugins** → **Nieuwe plugin**
|
|
2. Geef naam op (bijv. `MijnPlugin`) — dit wordt de mapnaam
|
|
3. Kies het type: **Content** of **Systeem**
|
|
4. Het bestand `MijnPlugin.php` wordt aangemaakt (NIET `plugin.php`)
|
|
5. Bewerk de plugin code in CodeMirror
|
|
6. Activeer de plugin
|
|
|
|
## Plugin bestandsnaam
|
|
|
|
Plugin PHP bestanden heten `<PluginName>.php` (bijv. `Navigation.php`, `HTMLBlock.php`). `PluginManager` laadt `$pluginDir . '/' . $pluginName . '.php'`.
|
|
|
|
## Plugin CSS
|
|
|
|
- Content en systeem plugins kunnen eigen CSS hebben in `assets/scss/` en `assets/css/`
|
|
- Plugin CSS wordt automatisch geladen ná theme CSS (in `base.twig`), zodat thema's plugin styling kunnen overschrijven
|
|
- Plugin assets worden geserveerd via `cms/router.php` op URL `/plugins/<Name>/assets/...` |