Template Vererbung
In der Version 1.3 erscheint QUIQQER mit der Möglichkeit der Template-Vererbung. Durch die Template-Vererbung ist es dir nun möglich dein erstelltes Template von einem anderen Template erben zu lassen.
Hierzu können im zu erbenden Template Einzelteile / Blöcke des Eltern-Templates überschrieben werden. Besitzt das Kind-Template gewisse HTML / CSS Dateien nicht, werden diese vom Eltern-Template bezogen.
Du musst also Templates nicht von null anfangen.
Was muss beachtet werden?
Das Eltern-Template sollte Asset URLs mit {$Template->getTemplateUrl('URL')}
einbinden. Durch die Verwendung von getTemplateUrl
lassen sich auch diese Dateien ersetzen.
Beispiel:
<link rel="stylesheet" href="{$Template->getTemplateUrl('bin/css/style.css')}"/>
<link rel="stylesheet" href="{$Template->getTemplateUrl('bin/css/buttons.css')}"/>
Assets sind in diesem Falle, CSS, JavaScript und Bild Dateien die vom Template mitgeliefert werden.
Zusätzlich sollte, wenn andere Templates eingebunden werden, immer die Smarty {fetch} Funktion von QUIQQER verwendet werden.
Beispiel:
{fetch template="template/footer.html"}
Kind Template erstellen
Als Erstes musst du in deiner composer.json
natürlich deine Abhängigkeit festlegen damit das Eltern-Template auch im System vorhanden ist. Möchtest du also von quiqqer/template-cologne
erben, musst du in der Paket composer.json
Datei den require Teil um dieses Template erweitern.
"require": {
"quiqqer/template-cologne": "1.*|dev-master|dev-dev"
},
Danach musst du deinem Template Paket noch mitteilen das dies ein Parent Template besitzt. Das ganze machst du in der package.xml
deines Paketes, indem du ein <template_parent>
Eintrag hinzufügst.
<template_parent>quiqqer/template-cologne</template_parent>
<quiqqer>
<package>
<!-- package stuff -->
<template_parent>quiqqer/template-cologne</template_parent>
<!-- package stuff -->
</package>
</quiqqer>
Wenn diese zwei Sachen erledigt sind, kannst du nun mit dem Überschreiben der Templates beginnen. Damit du einzelne Dateien des Eltern-Templates überschreiben kannst, musst du nur die gleiche Ordnerstruktur aufbauen wie von deinem Ausgangs-Template.
Ein gutes Beispiel wie so etwas aussieht, findest du unter https://dev.quiqqer.com/quiqqer/template-inheritance-example