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.