Plugin system: content vs system types, sidebar-aware UI, arrow visibility

- plugin.json type field: 'content' (sidebar) or 'system' (API only)
- Content-edit: label 'Plugins', hide section if layout has no sidebar
- Content-edit: disable checkboxes when no sidebar layout selected
- Content-edit: hide up arrow on first item, down arrow on last item
- PluginManager: isPluginViewable() checks type=system -> not viewable
- Admin plugins page: show Content/Systeem type badge
- HTMLBlock: add plugin.json with type=content
- Navigation: add type=content to config
This commit is contained in:
2026-08-11 17:22:41 +02:00
parent 4e77ef8670
commit ec7fec1c1e
7 changed files with 80 additions and 24 deletions
+6 -3
View File
@@ -16,13 +16,16 @@
<div class="card shadow-sm h-100">
<div class="card-header d-flex justify-content-between align-items-center">
<span class="fw-bold">{{ plugin.name|default(plugin.name) }}</span>
<span class="badge bg-{{ plugin.enabled ? 'success' : 'secondary' }}">{{ plugin.enabled ? 'Actief' : 'Inactief' }}</span>
<span>
{% if plugin.type == 'system' %}<span class="badge bg-info">Systeem</span>{% else %}<span class="badge bg-primary">Content</span>{% endif %}
<span class="badge bg-{{ plugin.enabled ? 'success' : 'secondary' }}">{{ plugin.enabled ? 'Actief' : 'Inactief' }}</span>
</span>
</div>
<div class="card-body">
<p class="card-text text-muted mb-2">{{ plugin.description|default('Geen beschrijving') }}</p>
<p class="small text-muted mb-3">
{% if plugin.version %}<span class="badge bg-info">v{{ plugin.version }}</span>{% endif %}
{% if plugin.author %}<span class="badge bg-secondary">{{ plugin.author }}</span>{% endif %}
{% if plugin.version %}<span class="badge bg-secondary">v{{ plugin.version }}</span>{% endif %}
{% if plugin.author %}<span class="badge bg-light text-dark">{{ plugin.author }}</span>{% endif %}
</p>
</div>
<div class="card-footer bg-white">