Ein praktischer Leitfaden zu HubSpots HubL if-Anweisungen für CMS-Entwickler.
if
-Anweisungen, da die Vorlagen kompiliert werden, bevor die Informationen ausgefüllt werden.if
-Anweisungen sind in Anweisungstrennzeichen eingeschlossen, beginnend mit einer öffnenden if
-Anweisung und mit einer endif
-Anweisung am Ende.
Das folgende Beispiel zeigt die grundlegende Syntax einer if-Anweisung, wobei „Bedingung“ durch die boolesche Regel ersetzt wird, die Sie als wahr oder falsch auswerten wollen.
my_module
und eine Variable mit dem Namen my_module
in einer Vorlage vorhanden sind oder nicht. Beachten Sie, dass ohne jegliche Operatoren die if-Anweisung auswertet, ob das Modul im Kontext der Vorlage definiert ist oder nicht.
if
-Anweisung in Anführungszeichen gesetzt wird und beim Testen der Variablen keine Anführungszeichen um den Variablennamen herum verwendet werden. In beiden obigen Beispielen sind das Modul und die Variable in der Vorlage vorhanden, sodass die Anweisungen so ausgewertet werden, dass das Markup gedruckt wird. Bitte beachten Sie, dass in diesen Beispielen nur getestet wird, ob das Modul und die Variable definiert sind, und nicht, ob sie einen Wert haben oder nicht.
Betrachten wir nun eine if-Anweisung
, die auswertet, ob ein Modul einen Wert hat, anstatt auszuwerten, ob es in der Vorlage vorhanden ist. Hierfür müssen wir den Parameter export_to_template_context verwenden. Wenn im folgenden Beispiel der Textbaustein im Content-Editor einen Wert erhält, wird das Markup gedruckt. Wäre das Textfeld des Moduls gelöscht worden, würde kein Markup gerendert. Wenn Sie mit benutzerdefinierten Modulen arbeiten, gibt es eine vereinfachte widget.widget_name
-Syntax, die in diesem Beispiel beschrieben wird.
if-
-Anweisungen können mit zusätzlichen bedingten Anweisungen oder mit einer Regel, die ausgeführt wird, wenn die Bedingung oder die Bedingungen falsch sind, weiter verfeinert werden. elif
-Anweisungen ermöglichen es Ihnen, zusätzliche Bedingungen zu Ihrer Logik hinzuzufügen, die nach der vorherigen Bedingung ausgewertet werden else
-Anweisungen definieren eine Regel, die ausgeführt wird, wenn alle anderen Bedingungen falsch sind. Sie können eine unbegrenzte Anzahl von elif
-Anweisungen innerhalb einer einzigen if-Anweisung haben, aber nur eine else
-Anweisung.
Im Folgenden finden Sie ein Beispiel für die grundlegende Syntax einer if-Anweisung, die den Operator <=
verwendet, um den Wert einer Variablen zu überprüfen. In diesem Beispiel würde die Vorlage Folgendes ausgeben: „Die angegebene Zahl der Variablen ist kleiner als oder gleich 6.“
unless
-Anweisungen sind genau wie if
-Anweisungen bedingte Anweisungen, funktionieren aber nach der umgekehrten Logik. Der Code zwischen dem öffnenden und dem schließenden Tag wird gerendert und kompiliert, es sei denn, die einzelne boolesche Bedingung wird zu true ausgewertet. unless-Anweisungen beginnen mit einem unless
und enden mit einem endunless
.unless
-Anweisungen unterstützen else
, aber nicht elif
.
Nachfolgend ein Beispiel, bei dem die Überschrift „Wartungsarbeiten“ ausgegeben wird, sofern das Rich-Text-Feld keinen Wert erhält. Wenn das Rich-Text-Feld über Inhalt verfügt, wird dieser Inhalt angezeigt.
ifchanged
-Anweisungen. Diese Anweisungen können verwendet werden, um Markup nur dann zu rendern, wenn sich eine Variable seit einem früheren Aufruf dieses Tags geändert hat.
if-
-Anweisungen. Diese können verwendet werden, um bedingte Logik knapp und gut verständlich mit Operatoren und Ausdruckstests zu schreiben.