v2.6.1d (Lyra): Plugin i18n, plugin editor vernieuwd, media invoegen
Plugin internationalisatie: plugins hebben eigen language/ mappen. Systeem plugins volgen admin taal (admin.php), content plugins volgen content taal (site.php). Fallback chain: geselecteerd -> plugin default_language -> CMS default. PluginManager/AdminPluginAPI/CMSAPI uitgebreid met getPluginTranslations()/t(). plugin.json settings ondersteunen label_key/help_key/option_label_key. Plugin uniformiteit: alle 6 plugins hebben uniforme structuur (README.md, assets/.gitkeep, language/nl|en/). plugins/README.md herschreven. guide plugin-development.md (NL+EN) volledig herschreven. Plugin editor vernieuwd: geneste bestandsbrowser zijbalk, nieuw bestand aanmaken, uploaden naar assets/, verwijderen en verplaatsen. Nieuwe routes: plugins-file-upload, plugins-file-delete, plugins-file-move. Path-traversal bescherming + protected plugins geblokkeerd. Media invoegen in editor: nieuw /admin/media-list JSON endpoint + herbruikbare _media-modal.twig include. Plugin-context scant assets/ map. editor-toolbar.js modeMap uitgebreid voor css/scss/js/json. Plugin overzicht knoppen: alleen iconen met title/aria-label. Tests: pentest 30/30, WCAG 2.1 AA 25/25.
This commit is contained in:
@@ -48,8 +48,10 @@ class CodePressCMS {
|
||||
|
||||
// Initialize plugin manager (files already loaded in cms/core/index.php)
|
||||
$enabledPlugins = $this->config['enabled_plugins'] ?? [];
|
||||
$this->pluginManager = new PluginManager(__DIR__ . '/../../../plugins', $enabledPlugins);
|
||||
$siteDefaultLang = $this->config['language']['default'] ?? 'nl';
|
||||
$this->pluginManager = new PluginManager(__DIR__ . '/../../../plugins', $enabledPlugins, $siteDefaultLang);
|
||||
$api = new CMSAPI($this);
|
||||
$api->setPluginManager($this->pluginManager);
|
||||
$this->pluginManager->setAPI($api);
|
||||
|
||||
$this->buildMenu();
|
||||
@@ -1378,6 +1380,10 @@ class CodePressCMS {
|
||||
'author_name' => $this->config['author']['name'] ?? 'CodePress Developer',
|
||||
'author_website' => $this->normalizeUrl($this->config['author']['website'] ?? '') ?: '#',
|
||||
'author_git' => $this->config['author']['git'] ?? '',
|
||||
// Per-page author metadata (from frontmatter, if present)
|
||||
'page_author_name' => htmlspecialchars($page['metadata']['author_name'] ?? ''),
|
||||
'page_author_email' => htmlspecialchars($page['metadata']['author_email'] ?? ''),
|
||||
'page_created' => htmlspecialchars($page['metadata']['created'] ?? ''),
|
||||
'seo_description' => $this->config['seo']['description'] ?? 'CodePress CMS - Lightweight file-based content management system',
|
||||
'seo_keywords' => $this->config['seo']['keywords'] ?? 'cms, php, content management, file-based',
|
||||
'block_ai_bots' => !empty($this->config['security']['block_ai_bots']),
|
||||
|
||||
Reference in New Issue
Block a user