71 lines
3.2 KiB
Markdown
71 lines
3.2 KiB
Markdown
# Plugins
|
|
|
|
## Plugin types
|
|
|
|
Er zijn twee soorten plugins:
|
|
|
|
- **Systeem plugins** (blauwe badge) - Beheren CMS-functionaliteit zoals Dashboard, Logs en Statistieken
|
|
- **Content plugins** (groene badge) - Tonen content in de front-end zoals HTMLBlock en Navigation
|
|
|
|
## Essentiële plugins
|
|
|
|
Essentiële plugins (met een schild-icoon) kunnen niet worden bewerkt, gedeactiveerd of verwijderd. Dit geldt bijvoorbeeld voor de Navigation plugin.
|
|
|
|
## Plugins beheren
|
|
|
|
- **Activeren/Deactiveren** - Plugins aan/uit
|
|
- **Bewerken** - Plugin code aanpassen
|
|
- **Configuratie** - Plugin instellingen (alleen bij plugins met een Config-knop)
|
|
- **Verwijderen** - Plugin verwijderen
|
|
|
|
Alleen actieve plugins worden getoond in de admin sidebar.
|
|
|
|
## Nieuwe plugin
|
|
|
|
1. Ga naar **Plugins** → **Nieuwe plugin**
|
|
2. Geef naam op (bijv. `MijnPlugin`)
|
|
3. Bewerk het PHP-bestand
|
|
4. Activeer de plugin
|
|
|
|
Nieuwe plugins zijn standaard content-plugins. Wil je een systeem-plugin maken, voeg dan `"type": "system"` toe aan `plugin.json`.
|
|
|
|
## Plugin editor
|
|
|
|
Via **Bewerken** (potlood-icoon) in het plugin-overzicht open je de plugin-editor (`/admin/plugins-edit?plugin=<naam>`). Deze werkt hetzelfde als de content- en thema-editors.
|
|
|
|
### Bestandsbrowser zijbalk
|
|
- Toont de geneste bestandsboom van de plugin, met een klikbare **plugin** root bovenaan
|
|
- Klik op een bestand om het te openen in de CodeMirror editor
|
|
- Klik op een map om het **map detail paneel** rechts te openen (nieuw bestand, nieuwe map, uploaden, verwijderen)
|
|
- Mappen die het actieve bestand bevatten zijn automatisch uitgeklapt
|
|
- Per map staan actie-knoppen: nieuw bestand, nieuwe map — opereren op de geselecteerde map
|
|
- Per bestand staan actie-knoppen: hernoemen/verplaatsen (potlood), verwijderen (prullenbak) — verschijnen bij hover
|
|
|
|
### Bestanden verslepen (drag-and-drop)
|
|
- Sleep een bestand of map naar een andere map om het te verplaatsen
|
|
- Tijdens het slepen worden geldige doel-mappen highlight getoond
|
|
- De verplaatsing gebeurt via een AJAX-call — de pagina herlaadt automatisch na succes
|
|
- Beschermde plugins (zoals Navigation) kunnen niet bewerkt/verplaatst worden
|
|
|
|
### Bewerkbare bestandstypen
|
|
`.php`, `.json`, `.md`, `.html`, `.css`, `.scss`, `.js`
|
|
|
|
### Nieuw bestand / nieuwe map aanmaken
|
|
- Selecteer de doelmap in de zijbalk (klik op de mapnaam), of gebruik de root
|
|
- Klik op **Nieuw bestand** of **Nieuwe map** (in het map-detail paneel of bovenaan)
|
|
- Bij nieuw bestand: geef een pad op binnen de plugin (bijv. `helper.php` of `assets/css/extra.css`)
|
|
- Submappen worden automatisch aangemaakt
|
|
|
|
### Bestand verplaatsen / verwijderen
|
|
- **Verplaatsen**: sleep het bestand naar een andere map (drag-and-drop), of klik op het potlood-icoon
|
|
- **Verwijderen**: klik op de prullenbak-knop naast het bestand in de zijbalk, met bevestiging
|
|
|
|
### Mappen beheer
|
|
- Klik op een map in de zijbalk om het **map-detail paneel** rechts te openen
|
|
- **Nieuw bestand / Nieuwe map / Uploaden in deze map**: gebruik de knoppen in het map-detail paneel
|
|
- **Map verwijderen**: verwijder-knop in het map-detail paneel (alleen lege mappen)
|
|
|
|
### Beveiliging
|
|
- Beschermde plugins (Navigation) kunnen niet bewerkt worden
|
|
- Alle acties vereisen CSRF token
|
|
- Path-traversal bescherming via `realpath()` + prefix-check op de plugin-map |