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:
@@ -10,6 +10,13 @@ $cms->init();
|
||||
$cms->renderPage($pagePath);
|
||||
```
|
||||
|
||||
Verantwoordelijkheden:
|
||||
- Routing en pagina rendering
|
||||
- Breadcrumb generatie (dynamisch: Home > [submappen] > [pagina])
|
||||
- Guide pagina's laden (`getGuidePage()`)
|
||||
- Titel extractie uit H1 (`getTitleFromFile()`)
|
||||
- Weergavenaam verwerking (`formatDisplayName()`)
|
||||
|
||||
## ThemeManager.php
|
||||
|
||||
Themabeheer in `cms/core/class/ThemeManager.php`:
|
||||
@@ -19,14 +26,84 @@ $themeManager = new ThemeManager($config);
|
||||
$themeManager->getActiveTheme();
|
||||
$themeManager->renderTwig($template, $data);
|
||||
$themeManager->compileCss($force);
|
||||
$themeManager->getCssUrl();
|
||||
```
|
||||
|
||||
Verantwoordelijkheden:
|
||||
- Actief thema resolveren vanuit `config.json`
|
||||
- `theme.json` laden (title, config.default_template, template mapping)
|
||||
- Twig environment bouwen (geroot in thema map)
|
||||
- **SCSS compilatie** — compileert `assets/scss/theme.scss` naar `assets/css_compiled/theme.css` via scssphp
|
||||
- Layout resolveren naar `.twig` template (fallback op `config.default_template`)
|
||||
|
||||
`getCssUrl()` prioriteit: 1) `assets/css/theme.css` (handmatig), 2) `assets/css_compiled/theme.css` (gecompileerd).
|
||||
|
||||
## PluginManager.php
|
||||
|
||||
Plugin systeem in `cms/core/class/PluginManager.php`:
|
||||
Plugin systeem in `cms/core/plugin/PluginManager.php`:
|
||||
|
||||
```php
|
||||
$pluginManager = new PluginManager();
|
||||
$pluginManager->loadPlugins($enabledPlugins);
|
||||
$pluginManager = new PluginManager($pluginsPath, $enabledPlugins);
|
||||
$pluginManager->getSidebarContent($allowedPlugins);
|
||||
$pluginManager->getPluginCssUrls();
|
||||
$pluginManager->executeHook($name, $params);
|
||||
```
|
||||
$pluginManager->getAdminMenuItems();
|
||||
$pluginManager->handleAdminRoute($route);
|
||||
$pluginManager->getPluginType($pluginName);
|
||||
```
|
||||
|
||||
Verantwoordelijkheden:
|
||||
- Plugins laden vanuit `plugins/` mappen (alleen ingeschakelde plugins)
|
||||
- Plugin bestand: `<PluginName>.php` (NIET `plugin.php`)
|
||||
- Hooks en filters systeem (`doAction`, `applyFilters`)
|
||||
- Sidebar content verzamelen van content plugins (`getSidebarContent`)
|
||||
- Plugin CSS URLs verzamelen (`getPluginCssUrls`)
|
||||
- **Admin menu items** van systeem plugins (`getAdminMenuItems`)
|
||||
- **Admin routes** afhandelen via systeem plugins (`handleAdminRoute`)
|
||||
- **Plugin type** bepalen (`getPluginType` — `content` of `system`)
|
||||
- `isPluginViewable` — systeem plugins verschijnen niet in sidebar
|
||||
|
||||
## AdminAuth.php
|
||||
|
||||
Authenticatie en RBAC in `admin/src/AdminAuth.php`:
|
||||
|
||||
```php
|
||||
$auth = new AdminAuth($appConfig);
|
||||
$auth->login($username, $password);
|
||||
$auth->logout();
|
||||
$auth->hasPermission($route);
|
||||
$auth->verifyCsrf($token);
|
||||
```
|
||||
|
||||
Constanten:
|
||||
- `ROLE_PERMISSIONS` — Mapping van rol → toegestane route prefixes. `admin` heeft wildcard `*`.
|
||||
- `ROLE_LABELS` — Human-readable labels per rol.
|
||||
|
||||
Rollen:
|
||||
|
||||
| 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 |
|
||||
|
||||
Verantwoordelijkheden:
|
||||
- Session-based authenticatie
|
||||
- bcrypt password hashing
|
||||
- CSRF tokens (`verifyCsrf`)
|
||||
- Brute-force lockout (login attempts tracking)
|
||||
- RBAC via `hasPermission($route)` — checkt route tegen `ROLE_PERMISSIONS`
|
||||
|
||||
## CMSAPI.php
|
||||
|
||||
Plugin API in `cms/core/plugin/CMSAPI.php`:
|
||||
|
||||
```php
|
||||
$api = PluginManager::getAPI();
|
||||
$config = $api->getConfig();
|
||||
$page = $api->getPage($path);
|
||||
$content = $api->getContent();
|
||||
```
|
||||
|
||||
Biedt read-only toegang aan plugins tot CMS data (config, pagina's, content).
|
||||
Reference in New Issue
Block a user