Templates - Die Einleitung

Hey! Ich arbeite aktuell an dem neuem Design und habe nun die PC- & Handy-Version öffentlich gestellt. Die Tablett-Version werde ich die Tage entwickeln, um die Website responsive für alle anzubieten. Solltest du Design-Bugs finden, kannst du diese gern hier melden.

Nach und nach gehen beim Erstellen von Stilen die Ideen aus, die mit der Grundstruktur der Templates erreicht werden kann, aus. Dann muss das Template bearbeitet werden. Doch wo überhaupt? Und was gibt es dort alles für Möglichkeiten?


Das zu erörtern, versuche ich in dieser X langen Reihe von Artikeln rund um das Templatesystem im Woltlab Suite Core.



Durch die Kontrollstrukturen ist auch in Templates ohne Programmierkenntnisse einiges möglich. Neben dem normalen HTML-, JavaScript und minimalen CSS-Code gibt es auch diese Kontrollstrukturen in einem Template. Eine häufig anzutreffende und einfach zu verstehende Kontrollstruktur:


Smarty
  1. {if $__wcf->getUser()->userID}Inhalt{/if}


Diese Zeile fragt ab, ob der Benutzer, der diese Seite anschaut, eine UserID hat. Nur Gäste haben keine festgelegte UserID, d.h. die Abfrage filtert Gäste heraus und zeigt in diesem Falle das Wort "Inhalt" für registrierte bzw. eingeloggte Benutzer an.


Natürlich kann es hier noch komplexer werden, aber das ist die Grundstruktur einer Kontrollstruktur. Wie schon oben zu sehen, gibt es in Template-Code auch Variablen. Hier war es die Variable $__wcf. Es gibt auch spezielle Variablen, die als Platzhalter genutzt werden und von Eventlistenern, also über PHP, gefüllt werden können.


Allgemein gilt für die Template-Modifikation: Den integrierten Template-Editor nutzen. Wie das genau geht, wird Teil eines neuen Tutorials werden. Außerdem sollten die Einrückungen auch nach der Bearbeitung beibehalten werden, um die Übersicht im Code gewährleisten zu können.


Anders als HTML-Dokumente müssen Templates niemals das volle Dokument umfassen. Man kann daher ein Template mit folgendem Inhalt erstellen:


Smarty
  1. <a href="{link controller='User' object=$__wcf->getUser()}{/link}" data-title="{$__wcf->getUser()->username}">{$__wcf->getUser()->username}</a>


Das Template ist dennoch vollständig. Ein Vorteil bei Templates ist nämlich, dass man sie ineinander schachteln kann. Das geht zwar bei HTML-Dateien auch mit iframes oder per PHP, aber ersteres ist eine veraltete Lösung und PHP in HTML-Dokumenten zu nutzen ist eigentlich nie sinnvoll. Bei Templates geht das einfach über folgenden Code:


Smarty
  1. {include file='template'}


Damit wird das Template namens template.tpl in das Template, in dem sich der Code befindet, eingefügt. So ist praktisch eine unendlich große Verschachtelung möglich. Man kann beim Inkludieren eines Templates auch noch die Endanwendung angeben, wenn man z.B. ein Template aus dem Forum inkludieren möchte. Dies sieht dann wie folgt aus:


Smarty
  1. {include file='template' application='wbb'}


Im nächsten Teil geht es dann weiter mit dem wirklichen Bearbeiten von Templates.



Du hast noch Fragen oder Probleme? Dann schreibe doch ein Kommentar oder sende mir eine private Nachricht.



Dieser Artikel wurde in Kooperation mit Black Rider erstellt.