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
This commit is contained in:
@@ -2,16 +2,45 @@
|
||||
|
||||
## Bestanden beheren
|
||||
|
||||
- **Uploaden** - Media bestanden uploaden
|
||||
- **Nieuwe map** - Mappen structuur aanmaken
|
||||
- **Nieuw bestand** - Pagina aanmaken
|
||||
- **Bewerken** - Bestaande content wijzigen
|
||||
- **Hernoemen** - Bestandsnamen aanpassen
|
||||
- **Verplaatsen** - Content verplaatsen
|
||||
- **Verwijderen** - Content verwijderen
|
||||
- **Nieuwe map** — Mappen structuur aanmaken
|
||||
- **Nieuw bestand** — Pagina aanmaken (`.md`, `.php`, `.html`)
|
||||
- **Bewerken** — Bestaande content wijzigen in CodeMirror editor
|
||||
- **Hernoemen** — Bestands- of mapnamen aanpassen
|
||||
- **Verplaatsen** — Content verplaatsen naar andere map
|
||||
- **Verwijderen** — Content verwijderen
|
||||
- **Map hernoemen** — Map naam wijzigen
|
||||
|
||||
## Editor
|
||||
## Editor (content-edit)
|
||||
|
||||
- CodeMirror met syntax highlighting
|
||||
- Toolbar voor Markdown formatting
|
||||
- Sneltoetsen: Ctrl+S (opslaan), Ctrl+N (nieuw)
|
||||
- **CodeMirror** met syntax highlighting (Markdown, PHP, HTML)
|
||||
- **Toolbar** voor snel Markdown invoeren
|
||||
- **Sneltoetsen**: Ctrl+S (opslaan), Ctrl+N (nieuw)
|
||||
|
||||
## Layout selectie
|
||||
|
||||
Op de content-edit pagina kun je de layout kiezen uit de layouts gedefinieerd in `theme.json` (template mapping). De geselecteerde layout wordt opgeslagen in de frontmatter `layout:` key.
|
||||
|
||||
## Plugins op pagina's
|
||||
|
||||
- Content plugins (uit `plugin.json` met `type: "content"`) verschijnen in de plugin selectie
|
||||
- Kies welke plugins in de sidebar verschijnen
|
||||
- **Volgorde aanpasbaar** met up/down knoppen
|
||||
- De plugin volgorde wordt opgeslagen in de frontmatter `plugins:` key
|
||||
- Plugins worden **verbergen** als de gekozen layout geen sidebar heeft (bijv. `full_content`)
|
||||
|
||||
## Frontmatter
|
||||
|
||||
De editor werkt de frontmatter live bij bij wijzigingen van layout of plugin selectie:
|
||||
|
||||
```markdown
|
||||
---
|
||||
layout: left_sidebar
|
||||
plugins:
|
||||
- HTMLBlock
|
||||
- Navigation
|
||||
---
|
||||
|
||||
# Pagina titel
|
||||
|
||||
Content...
|
||||
```
|
||||
@@ -1,10 +1,32 @@
|
||||
# Dashboard
|
||||
|
||||
Het dashboard toont een overzicht van:
|
||||
Het dashboard toont een **role-based overzicht** van de website. Welke widgets zichtbaar zijn, hangt af van de rol van de ingelogde gebruiker.
|
||||
|
||||
- Weergaven (30 dagen)
|
||||
- Unieke bezoekers
|
||||
## Rollen en widgets
|
||||
|
||||
### Admin
|
||||
- Weergaven (30 dagen) en unieke bezoekers
|
||||
- Aantal pagina's en mappen
|
||||
- Actieve plugins
|
||||
- Recente activiteit
|
||||
- Snelle acties
|
||||
- Systeem informatie
|
||||
- Snelle acties (nieuwe pagina, plugin, thema)
|
||||
|
||||
### Content Beheerder
|
||||
- Aantal pagina's en mappen
|
||||
- Recente content wijzigingen
|
||||
- Snelle acties (nieuwe pagina, map)
|
||||
|
||||
### BI Beheerder
|
||||
- Weergaven (30 dagen) en unieke bezoekers
|
||||
- Top pagina's
|
||||
- Recente bezoeken
|
||||
|
||||
### Site Admin
|
||||
- Actieve plugins en thema's
|
||||
- Systeem informatie
|
||||
- Snelle acties (thema, plugin, update)
|
||||
|
||||
## Toegang
|
||||
|
||||
Het dashboard is de standaard pagina na login (`/admin/dashboard`). Alle rollen hebben toegang tot het dashboard.
|
||||
@@ -1,13 +1,40 @@
|
||||
# Gebruikers
|
||||
|
||||
Gebruikers worden opgeslagen in `admin/config/admin.json` (file-based, geen database). Elke gebruiker heeft een **rol** die bepaalt welke admin routes en sidebar items zichtbaar zijn.
|
||||
|
||||
## Rollen
|
||||
|
||||
CodePress kent vier rollen, gedefinieerd in `AdminAuth::ROLE_PERMISSIONS`:
|
||||
|
||||
| Rol | Label | Permissies |
|
||||
|-----|-------|-----------|
|
||||
| `admin` | Admin | Alles (`*`) |
|
||||
| `content-manager` | Content Beheerder | Content beheer, handleiding |
|
||||
| `bi-manager` | BI Beheerder | Statistieken, logs, handleiding |
|
||||
| `site-admin` | Site Admin | Thema, plugins, statistieken, logs, update, handleiding |
|
||||
|
||||
Rollen worden getoond met hun label via `AdminAuth::ROLE_LABELS`.
|
||||
|
||||
## Gebruiker toevoegen
|
||||
|
||||
1. Ga naar **Gebruikers**
|
||||
2. Vul gebruikersnaam in
|
||||
3. Kies wachtwoord
|
||||
4. Klik **Toevoegen**
|
||||
3. Kies wachtwoord (opgeslagen als bcrypt hash)
|
||||
4. Selecteer een rol
|
||||
5. Klik **Toevoegen**
|
||||
|
||||
## Gebruiker bewerken
|
||||
|
||||
- Wachtwoord wijzigen (nieuwe bcrypt hash)
|
||||
- Rol wijzigen (beïnvloedt direct zichtbare routes en sidebar items)
|
||||
|
||||
## Gebruiker verwijderen
|
||||
|
||||
- Kan niet voor eigen account
|
||||
- Bevestig met wachtwoord
|
||||
- Bevestig met wachtwoord
|
||||
|
||||
## Toegangscontrole
|
||||
|
||||
- Route access wordt gecontroleerd in `public/admin.php` via `AdminAuth::hasPermission()`
|
||||
- Onbevoegde routes geven een **403 error**
|
||||
- Sidebar items worden conditioneel getoond via de `has_permission()` Twig function in `admin.twig`
|
||||
@@ -1,15 +1,49 @@
|
||||
# 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** - Plugins aan/uit
|
||||
- **Bewerken** - Plugin code aanpassen
|
||||
- **Configuratie** - Plugin instellingen
|
||||
- **Verwijderen** - Plugin verwijderen
|
||||
- **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)
|
||||
|
||||
## Nieuwe plugin
|
||||
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`)
|
||||
3. Bewerk `plugin.php`
|
||||
4. Activeer de 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/...`
|
||||
@@ -3,17 +3,64 @@
|
||||
## Thema's beheren
|
||||
|
||||
1. Ga naar **Thema** in admin menu
|
||||
2. **Activeren** - Kies actief thema
|
||||
3. **SCSS compileren** - Verwerk SCSS naar CSS
|
||||
4. **Nieuw thema** - Eigen thema aanmaken
|
||||
2. **Activeren** — Kies actief thema (wordt opgeslagen in `config.json`)
|
||||
3. **SCSS compileren** — Verwerk SCSS naar CSS (geforceerd)
|
||||
4. **Nieuw thema** — Eigen thema aanmaken via admin of handmatig
|
||||
|
||||
## Thema structuur
|
||||
|
||||
```
|
||||
themes/default/
|
||||
├── theme.json # Thema configuratie
|
||||
├── base.twig # Hoofd layout
|
||||
├── full_content.twig # Layouts
|
||||
├── partials/ # Header, nav, footer
|
||||
└── assets/ # CSS, JS, afbeeldingen
|
||||
```
|
||||
├── theme.json # { title, config.default_template, template: layout→.twig }
|
||||
├── base.twig # Hoofd layout (head, header, nav, breadcrumb, footer)
|
||||
├── full_content.twig # Layout: volledige breedte
|
||||
├── left_sidebar.twig # Layout: sidebar links
|
||||
├── right_sidebar.twig # Layout: sidebar rechts
|
||||
├── custom1.twig # Layout: custom
|
||||
├── guide.twig # Layout: handleiding met sidebar (Navigation plugin)
|
||||
├── partials/ # header.twig, navigation.twig, footer.twig
|
||||
└── assets/
|
||||
├── scss/theme.scss # SCSS bron (enige CSS bron — handmatige css/theme.css mag niet bestaan)
|
||||
├── css_compiled/ # Gegenereerd door scssphp (read-only, niet handmatig aanpassen)
|
||||
├── css/ # Externe CSS (bootstrap.min.css, bootstrap-icons.css, mobile.css)
|
||||
├── js/ # app.js, bootstrap.bundle.min.js
|
||||
├── fonts/ # bootstrap-icons.woff, woff2
|
||||
└── img/ # favicon, icon, world-map
|
||||
```
|
||||
|
||||
## theme.json
|
||||
|
||||
```json
|
||||
{
|
||||
"title": "default",
|
||||
"config": {
|
||||
"default_template": "full_content"
|
||||
},
|
||||
"template": {
|
||||
"full_content": "full_content.twig",
|
||||
"left_sidebar": "left_sidebar.twig",
|
||||
"right_sidebar": "right_sidebar.twig",
|
||||
"custom1": "custom1.twig",
|
||||
"guide": "guide.twig"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
- `title` — Weergavenaam in admin
|
||||
- `config.default_template` — Standaard layout voor pagina's zonder `layout:` frontmatter
|
||||
- `template` — Mapping van layout naam naar `.twig` bestand
|
||||
|
||||
## SCSS compilatie
|
||||
|
||||
- `ThemeManager` compileert `assets/scss/theme.scss` runtime naar `assets/css_compiled/theme.css` via scssphp
|
||||
- `css_compiled/` is **read-only** — niet handmatig aanpassen
|
||||
- `assets/css/theme.css` mag **niet** bestaan; anders negeert `ThemeManager::getCssUrl()` de SCSS
|
||||
- Na SCSS wijzigingen: verwijder `assets/css_compiled/theme.css` en `.mtime` om te forceren
|
||||
|
||||
## Layouts
|
||||
|
||||
Layouts worden gekozen via frontmatter `layout:` key in content bestanden. Onbekende layouts vallen terug op `config.default_template` uit `theme.json`.
|
||||
|
||||
## guide.twig
|
||||
|
||||
Speciale layout voor handleidingen. Injecteert de Navigation plugin in de sidebar voor zijbalk navigatie. Wordt automatisch gebruikt voor pagina's in de `guide/` map.
|
||||
Reference in New Issue
Block a user