# CodePress CMS Plugins Deze map bevat plugins voor de CodePress CMS. Elke plugin heeft zijn eigen submap met de plugin code. ## Plugin Structuur Elke plugin map moet het volgende bevatten: ``` PluginName/ ├── PluginName.php # Hoofd plugin bestand ├── README.md # Plugin documentatie (optioneel) ├── config.json # Plugin configuratie (optioneel) └── assets/ # CSS, JS, images (optioneel) ├── css/ ├── js/ └── images/ ``` ## Beschikbare Plugins ### HTMLBlock Toont een custom HTML blok in de sidebar met pagina-informatie en navigatie. **Locatie:** `HTMLBlock/HTMLBlock.php` **Functies:** - Toont huidige pagina informatie - Dynamische navigatie - Bestandsinformatie - Interactive controls ## Plugin Development ### Basis Plugin Class ```php api = $api; } public function getSidebarContent(): string { return '
Mijn plugin content
'; } } ``` ### Beschikbare API Methodes - `getCurrentPage()` - Huidige pagina data - `getCurrentPageTitle()` - Huidige pagina titel - `getMenu()` - Menu structuur - `getConfig($key)` - Configuratie waardes - `translate($key)` - Vertalingen - `getCurrentLanguage()` - Huidige taal - `isHomepage()` - Check of homepage - `getCurrentPageFileInfo()` - Bestandsinformatie - `createUrl($page, $lang)` - URL generatie ### Plugin Hooks Plugins kunnen de volgende methodes implementeren: - `getSidebarContent()` - Content voor sidebar - `setAPI(CMSAPI $api)` - API injectie ## Configuratie Plugins kunnen een `config.json` bestand hebben: ```json { "enabled": true, "settings": { "option1": "value1", "option2": "value2" } } ``` ## Installatie 1. Maak een nieuwe map in `plugins/` 2. Plaats de plugin class in `PluginName/PluginName.php` 3. Optioneel: voeg README.md en config.json toe 4. De plugin wordt automatisch geladen door de CMS ## Best Practices - Gebruik `htmlspecialchars()` voor output - Implementeer `setAPI()` voor CMS toegang - Volg PSR-12 coding standards - Gebruik namespace indien nodig - Documenteer je plugin met README.md