Zum Hauptinhalt springen

Theme bauen: Grundlagen & Ordnerstruktur

Ordnerstruktur eines Themes

templates/frontend/mein-theme/
  manifest.json
  base.tpl              (Rahmen: Header, Navigation, Footer)
  home.tpl              (Startseite)
  single.tpl            (generischer Fallback für Einzelansichten)
  teaser.tpl             (generischer Fallback für Kurzansichten)
  archive.tpl            (Kategorie-/Tag-Archive)
  single-Article.tpl     (typ-spezifisch, hat Vorrang vor single.tpl)
  assets/css/style.css
  assets/images/

manifest.json

{
  "name": "Mein Theme",
  "version": "1.0.0",
  "author": "Dein Name",
  "parent_theme": null
}

Registrierung

Ein Theme muss nach dem Ablegen der Dateien noch REGISTRIERT werden, bevor es aktivierbar ist:

use Nexis\Template\ThemeRepository;
(new ThemeRepository($db))->register('frontend', 'Mein Theme', 'mein-theme');
(new ThemeRepository($db))->activate('frontend', 'mein-theme');

register() erwartet die Parameter in der Reihenfolge (area, name, path) - NICHT (area, path, name). Bei vertauschter Reihenfolge landet der Anzeigename im path-Feld und umgekehrt - die Aktivierung schlägt dann scheinbar grundlos fehl, weil unter dem erwarteten Pfad kein Eintrag existiert.