- 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
2.0 KiB
2.0 KiB
Routing
Frontend routing
Frontend routing verloopt via cms/router.php (PHP dev server) of .htaccess (Apache). Beide zorgen voor clean URLs.
PHP dev server
Start de server met:
php -S localhost:8080 cms/router.php
cms/router.php serveert:
- Schone URLs:
/nl/pagina→public/index.php?page=pagina&lang=nl themes/assetsadmin/assets/assetsplugins/assets
Apache (live server)
public/.htaccess herschrijft URLs naar public/index.php. Asset URLs (/themes/, /admin/assets/, /plugins/) worden doorgestuurd naar public/asset.php.
public/asset.php serveert bestanden vanuit de juiste mappen met het juiste MIME-type:
/themes/<name>/assets/...→themes/<name>/assets/.../admin/assets/...→admin/theme/default/assets/.../plugins/<name>/assets/...→plugins/<name>/assets/...
Admin routing
Admin routing verloopt via public/admin.php met clean URLs:
/admin/dashboard → ?route=dashboard
/admin/content → ?route=content
/admin/plugins → ?route=plugins
cms/router.php of .htaccess zet /admin/<route> om naar ?route=<route>.
Route access control (RBAC)
Elke route wordt gecontroleerd via AdminAuth::hasPermission($route):
adminrol heeft wildcard*toegang- Andere rollen hebben een expliciete lijst van toegestane routes in
ROLE_PERMISSIONS - Onbevoegde routes geven een 403 error
Plugin admin routing
Systeem plugins kunnen admin routes registreren. Deze worden afgehandeld door PluginManager::handleAdminRoute($route):
- Systeem plugin registreert routes via
getAdminRoutes() PluginManager::getAdminMenuItems()verzamelt admin menu items viagetAdminMenu()- Bij een admin request zoekt
PluginManager::handleAdminRoute($route)een plugin die de route afhandelt - De plugin methode
handleAdminRoute($route)rendert de pagina inhoud
// PluginManager roept deze aan voor /admin/mijn-systeem
$plugin->handleAdminRoute('mijn-systeem');