- Fix template variable replacement in guide pages by removing {{}} brackets
- Escape code blocks in guide markdown to prevent template processing
- Completely rewrite guide documentation with comprehensive CMS features
- Add bilingual guide support (English/Dutch) with detailed examples
- Enhance CodePressCMS core with improved guide page handling
- Update template system with better layout and footer components
- Improve language files with additional translations
- Update configuration with enhanced theme and language settings
Resolves issue where guide pages were showing replaced template variables
instead of displaying them as documentation examples.
102 lines
2.2 KiB
Markdown
102 lines
2.2 KiB
Markdown
# 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
|
|
<?php
|
|
|
|
class MyPlugin
|
|
{
|
|
private ?CMSAPI $api = null;
|
|
|
|
public function setAPI(CMSAPI $api): void
|
|
{
|
|
$this->api = $api;
|
|
}
|
|
|
|
public function getSidebarContent(): string
|
|
{
|
|
return '<div>Mijn plugin content</div>';
|
|
}
|
|
}
|
|
```
|
|
|
|
### 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 |