Files
CodePress/plugins

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

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:

{
    "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