WEBSALE Template Engine
Die WEBSALE Template Engine wird für die komplette Erstellung und Gestaltung der Storefront verwendet. Sie benötigen keine Kenntnisse in Programmiersprachen wie PHP oder Java und auch kein Wissen über Datenbankzugriffe, um Ihren individuellen WEBSALE Onlineshop zu erstellen und anzupassen. Mit der WEBSALE Template Engine können dynamische Inhalte im Onlineshop einfach angezeigt werden – ganz ohne komplexe Backend-Logik. Als Template-Manager können Sie sich voll und ganz auf HTML, CSS und JavaScript konzentrieren und dynamische Daten wie Produktinformationen, Benutzerprofile oder Preise mithilfe unserer Template Engine und Template-Sprache einbinden.Grundlagen und Syntax der WEBSALE Template Engine
In der WEBSALE-Template-Umgebung basieren alle Templates auf Standard-HTML-Dateien mit den Endungen.htm oder .html, die innerhalb der Shop-Verzeichnisstruktur abgelegt sind. Innerhalb dieser HTML-Dateien können sogenannte Template-Tags verwendet werden, um dynamische Inhalte oder sprachabhängige Texte in das Frontend einzubinden.
Die Template-Tags ermöglichen die Einbindung von:
- Textbausteinen für sprachabhängige Inhalte.
- Platzhaltern für dynamische Inhalte wie Produktdaten, Benutzerdaten oder Shop-Funktionen.
Textbausteine
Textbausteine werden verwendet, um sprachabhängige Texte wie Button-Beschriftungen oder Überschriften zentral zu verwalten und in die Templates einzufügen. Ihre Syntax ist einfach und eindeutig:%%Textbausteinname%% setzt voraus, dass die Bezeichnung beim Erstellen des Templates bereits feststeht. Beim Veröffentlichen der Templates ersetzt der Shop sie durch den Text. Wenn die Bezeichnung erst beim Aufruf der Seite feststeht, beispielsweise weil sie aus einem Statuscode eines externen Systems gebildet wird, verwenden Sie stattdessen die Funktion translate:
Platzhalter (für dynamische Inhalte)
Platzhalter dienen zur Einbindung von dynamischen Daten, die zur Laufzeit vom Backend bereitgestellt werden. Die Syntax ist HTML-ähnlich und verwendet doppelte geschweifte Klammern{}:
Standard-Escaping
Die WEBSALE Template-Engine verfügt über ein integriertes Standard-Escaping, das automatisch auf alle dynamisch eingebundenen Inhalte angewendet wird. Dadurch wird sichergestellt, dass HTML- oder JavaScript-Code, der z. B. in Produktdaten oder CMS-Inhalten enthalten ist, nicht interpretiert, sondern als Klartext dargestellt wird. Viele Inhalte im Shop – z. B. Produktbeschreibungen, CMS-Artikel oder andere redaktionelle Texte – enthalten HTML zur Formatierung. Damit diese Inhalte nicht unbeabsichtigt als echter HTML-Code ausgeführt werden, wird bei der Ausgabe mit{{= ... }} ein automatisches Escaping angewendet.
Beispiel: Standard-Escaping aktiviert
= ein Ausrufezeichen ! verwendet:
Variablen
Mit der WEBSALE Template-Sprache können die Daten ausgegeben werden, die vom Shopsystem bereitgestellt werden. Jede Seite, die von der Template Engine gerendert wird, erhält so die benötigten Daten, um die angeforderten Inhalte anzuzeigen. Diese Daten werden in sogenannten Template-Variablen gespeichert. Alle Template-Variablen können über die Template-Sprache mit einem$ gefolgt vom Variablennamen aufgerufen werden. Variablennamen können frei vergeben werden.
Es gibt auch Systemvariablen, die mit $ws beginnen und deren Namen vorgegeben sind. Beispiele hierfür sind die Module $wsProducts und $wsCategories. Eine vollständige Übersicht der WEBSALE Systemvariablen und weitere Informationen zu den Variablen allgemein finden Sie in der Übersicht der Variablen.
Variablen setzen & verwenden
Beispiel: Neue Variable$wsProducts.load('1234') die Daten des Produkts mit der Produkt-ID 1234. Diese werden in der Variable $myProduct gespeichert und können später verwendet werden.
Beispiel: Verwendung der Variablen
- Die Produktdaten werden in
$myProductgespeichert. - Der Produktname, die Beschreibung und der Preis werden dynamisch in das Template eingefügt.
. zwischen den einzelnen Ebenen.
In diesem Beispiel:
$myProductist die Hauptvariable für das Produkt.customverweist auf benutzerdefinierte Daten des Produkts.mainImagegibt das Hauptbild des Produkts an. Der Feldname ist ein Beispiel und hängt von den Produktdatenfeldern ab, die im Shop angelegt sind.thumbnailgreift auf die verkleinerte Version des Bildes zu.
Gültigkeitsbereich von Variablen
Der Gültigkeitsbereich einer Variablen definiert, wo sie im Template verwendet werden kann. Variablen, die außerhalb von Bereichsanweisungen wieif oder foreach definiert werden, sind im gesamten Template gültig:
Modifiers (Modifikatoren)
Manchmal reicht es nicht aus, den Inhalt einer Variable einfach nur auszugeben. Der Wert muss zuvor verändert oder angepasst werden. Genau dafür gibt es die sogenannten Modifiers. Modifiers können auf alle Variablen angewendet werden, um deren Inhalt zu verändern. Dazu fügen Sie der entsprechenden Variable ein| (Pipe-Zeichen) und den Modifiernamen hinzu. Zusätzliche Parameter werden in runden Klammern angegeben.
Beispiel: Kürzen eines Textes
take auf den Produktnamen angewendet. Er gibt nur die ersten 30 Zeichen aus.
Beispiel: Mehrere Modifiers auf eine Variable anwenden
Sie können auch mehrere Modifiers hintereinander auf eine Variable anwenden. Sie werden in der angegebenen Reihenfolge verarbeitet.
stripHtml zunächst die HTML-Formatierungen aus der Produktbeschreibung. Anschließend kürzt take den reinen Text auf 120 Zeichen.
Eine vollständige Liste aller Modifiers sowie deren Beschreibung finden Sie in der Übersicht der Modifikatoren.
Bedingungen (Conditions)
Mithilfe von Bedingungen können Sie die Ausgabe in der Storefront abhängig von bestimmten Werten variieren. Eine Bedingung wird mit{{ if }} eingeleitet und mit {{ /if }} abgeschlossen. Dazwischen sind beliebig viele {{ elseif }}-Zweige und ein {{ else }}-Zweig erlaubt. Der Inhalt eines Zweigs wird nur ausgegeben, wenn die Prüfung darin wahr (true) ist.
Beispiel:
$myProduct.description einen Inhalt hat. Wenn ja, wird ihr Inhalt ausgegeben. Andernfalls wird der alternative Inhalt im else-Zweig ausgegeben, hier eine Kurzbeschreibung aus einem Produktdatenfeld.
Zusätzlich zu if und else können auch mehrere Prüfungen hintereinander definiert werden, indem {{ elseif }} hinzugefügt wird.
Beispiel: Begrüßung des Besuchers im Onlineshop
- Ist ein Kunde eingeloggt und hat er eine Rechnungsadresse hinterlegt, wird er mit seinem Vornamen begrüßt.
- Ist ein Kunde eingeloggt, aber ohne hinterlegte Rechnungsadresse, wird eine allgemeine Begrüßung angezeigt.
- Für alle nicht eingeloggten Besucher wird ein Hinweis zur Registrierung angezeigt.
> oder < die verfügbare Stückzahl eines Produktes. Die Bestandsdaten liefert das Modul $wsInventory:
Loops (Schleifen)
Schleifen ermöglichen es, durch eine Liste mit mehreren Datensätzen, beispielsweise Produkten, zu iterieren und automatisch Inhalte für jeden einzelnen Datensatz zu erzeugen. So können Sie wiederkehrende Strukturen wie Produktlisten oder Bildergalerien effizient erstellen. Eine Schleife wird mit{{ foreach <Laufvariable> in <Liste> }} geöffnet und mit {{ /foreach }} geschlossen. Der Name der Laufvariable kann frei gewählt werden und darf Buchstaben, Zahlen sowie Unterstriche enthalten.
Die foreach-Schleife durchläuft alle Elemente einer Liste und führt den eingeschlossenen Codeabschnitt für jedes Element aus. Dabei wird mit jedem Durchlauf das aktuelle Element der Laufvariable zugewiesen.
Beispiel: Produktliste einer Kategorie
5678 und erstellt für jedes Produkt ein neues <div>-Element. Enthält die Kategorie keine Produkte, ist die Liste leer und die anschließende Bedingung gibt eine entsprechende Nachricht aus.
Vollständige Informationen zu den Schleifen finden Sie unter Loops.
