Zum Hauptinhalt springen

Ein eigenes Admin-Theme bauen

Meistens reicht weniger, als man denkt

Ein komplett neues Admin-Theme von Grund auf ist selten nötig. Für die allermeisten Fälle (eigene Farben, eigenes Logo, eigene Anordnung) reicht es, nur die Rahmen-Datei base.tpl neu zu gestalten - der Rest lässt sich unverändert vom mitgelieferten Standard-Theme übernehmen.

Die zwei wirklich unverzichtbaren Dateien

repository/themes/admin/MeinAdminTheme/
  manifest.json
  base.tpl              (der komplette Rahmen: Seitenleiste, Kopfzeile, Fußzeile)
  extension_page.tpl     (Andockstelle für Erweiterungs-Admin-Seiten)

Das mitgelieferte adminHMD-Theme hat für JEDE Kernseite ein eigenes Template (Dashboard, Menüs, SEO-Einstellungen, Repository-Browser, Backup, Papierkorb, Login und mehr - über 20 Dateien insgesamt). Fehlt eine davon in einem eigenen Admin-Theme, fällt NexisCore automatisch auf extension_missing.tpl zurück - die Seite funktioniert weiterhin, sieht nur nicht durchgestylt aus. Das macht ein eigenes Admin-Theme unkritisch: man kann klein anfangen und nach und nach mehr Seiten selbst gestalten.

— Was ein vollständiges Admin-Theme zusätzlich braucht

base.tpl - die wichtigsten Variablen

<?php foreach ($nav_items ?? [] as $item): ?>
  <a href="<?php echo htmlspecialchars($item['href']); ?>"
     class="<?php echo $item['active'] ? 'active' : ''; ?>">
    <i class="bi <?php echo $item['icon']; ?>"></i>
    <?php echo htmlspecialchars($item['label']); ?>
  </a>
<?php endforeach; ?>

<?php echo $this->getBlock('content'); ?>

$nav_items kommt bereits fertig aufbereitet - jede Erweiterung mit einem eigenen admin_pages-Eintrag in ihrer manifest.json taucht automatisch darin auf, ohne dass das Admin-Theme selbst etwas dafür tun muss.

extension_page.tpl

{extends 'base.tpl'}
{block content}
<?php echo $extension_content; ?>
{/block}

Reicht praktisch immer wortwörtlich so aus wie hier gezeigt - jede Admin-Seite einer Erweiterung (siehe Erweiterung bauen: Aufbau & manifest.json) wird automatisch hierüber in den Rahmen eingebettet.

Vollständiges Beispiel zum Herunterladen

Ein bewusst minimales, aber real installierbares und getestetes Admin-Theme - mit README zur genauen Abgrenzung, was ein vollständiges Admin-Theme zusätzlich bräuchte.

ExampleAdminTheme.zip herunterladen

Hinweis: Wer ein eigenes Admin-Theme im NexisCore-Marktplatz veröffentlichen möchte, kann optional eine market.md beilegen und den Schnellupload nutzen, statt das Formular von Hand auszufüllen. Mehr dazu: Schnellupload & market.md →