Merge development v2.6.0 into main

Resolved conflicts by taking development (v2.6.0) version for all files.
Removed statistics.twig (replaced by Statistics plugin).
This commit is contained in:
2026-08-15 19:32:47 +02:00
208 changed files with 3757 additions and 23879 deletions
+10 -4
View File
@@ -3,7 +3,13 @@
## Algemene instellingen
- **Site titel** - Naam van de website
- **Standaard taal** - nl/en/de/fr
- **Auteur** - Naam en e-mail
- **Analytics** - Bezoekers tracking aan/uit
- **Logging** - Logbestanden aan/uit
- **Admin taal** - Taal van het admin-paneel (nl/en/de)
- **Content taal** - Standaardtaal van de website-content (nl/en/de/fr)
## Homepage
Kies welke pagina getoond wordt op de homepage:
- **Automatisch** - Eerste beschikbare pagina
- **Meest recent** - Laatst aangepaste pagina
- **Specifieke pagina** - Kies een specifieke pagina uit de content-map
+14 -33
View File
@@ -2,48 +2,29 @@
## Plugin types
CodePress kent twee soorten plugins, bepaald door het `type` veld in `plugin.json`:
Er zijn twee soorten plugins:
- **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.
- **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 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.
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** 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)
- **Activeren/Deactiveren** - Plugins aan/uit
- **Bewerken** - Plugin code aanpassen
- **Configuratie** - Plugin instellingen (alleen bij plugins met een Config-knop)
- **Verwijderen** - Plugin verwijderen
De admin plugins pagina toont een **Content** of **Systeem** badge per plugin.
Alleen actieve plugins worden getoond in de admin sidebar.
## Nieuwe plugin aanmaken
## Nieuwe plugin
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
2. Geef naam op (bijv. `MijnPlugin`)
3. Bewerk het PHP-bestand
4. 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/...`
Nieuwe plugins zijn standaard content-plugins. Wil je een systeem-plugin maken, voeg dan `"type": "system"` toe aan `plugin.json`.