Files
CodePress/guide/nl/admin-beheerder/plugins.md
T
E.Noorlander 9a5ab351ba Update all guides (NL + EN) for CodePress 2.5.2 features
- 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
2026-08-12 12:05:53 +02:00

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/...`