Version: GSB 7Allgemeine Syntax
Das folgende Kapitel beschreibt die allgemein zur Verfügung stehende Syntax zur Abbildung von logischen Programmstrukturen mit Kommentaren, Variablen, Ausdrücken und Kontrollstrukturen.
Kommentare
Um logische Strukturen zu strukturieren und zu erläutern, können Kommentare an entsprechenden Skriptstellen eingefügt werden. Wie auch in anderen Skript- und Programmiersprachen werden diese bei folgender Schreibweise vom Compiler ignoriert.<syntaxhighlight lang="xml" enclose="div">
## display content region
</syntaxhighlight>
Bezeichner
Bezeichner sind mit fester Logik belegte Begriffe, die nicht in gleicher Form als Variable oder Text verwendet werden dürfen. Folgende Begriffe sind im Rahmen von Velocity bzw. dem GSB vorbelegt und sollten z.B. nicht als Kommentar verwendet werden.<syntaxhighlight lang="xml" enclose="div">
- if
- else
- foreach
- end
- otherwise
- when
- set
</syntaxhighlight>
Variablen
Die Zuweisung eines Wertes in eine Variable erfolgt in Form: <syntaxhighlight lang="xml" enclose="div">
- set( $meineVariable = “Mein Text“)
- set( $meineZahl = 55 )
</syntaxhighlight>
Operatoren
Mittels Operatoren können in den Velocity-Templates Berechnungen durchgeführt oder Bedingungen formuliert werden.
Hinweis: Bei der Nutzung von Operatoren sollte auf den Einsatz von Leerzeichen geachtet werden. Ohne Leerzeichen wird zum Beispiel das Minus-Zeichen als Teil einer Variablen interpretiert. <syntaxhighlight lang="xml" enclose="div">
- set( $meineZahl = 5 + 4 )
- set( $meineZahl = 5 - 4 )
</syntaxhighlight>
Kontrollstrukturen
Zur Auswertung oder zur Steuerung des Programmablaufs stehen verschiedene Kontrollstrukturen zur Verfügung.
Fallunterscheidung mit if
<syntaxhighlight lang="xml" enclose="div">
- if( $slot.pageIndex == $page)
- $page
- else
- <a href="$slot.getPageLink($page)">$page</a>
- end
</syntaxhighlight>
Fallunterscheidung mit elseif
<syntaxhighlight lang="xml" enclose="div">
- if( ! $sGesetzt.equals("Gesetzt") )
- $cms.escapeXml($sSecondLevelTitle)
- elseif( $docSecondLevel.equals($container.secondLevel) )
#set( $sTitle = $cms.message("GlossarAusgewaehlt", "$cms.escapeXml($sSecondLevelTitle)")
- $cms.escapeXml($sSecondLevelTitle)
- else
#set( $sLink = $cms.link($container, null, ["lv2Link", $docSecondLevel]) )
- <a href="$sLink" title="$cms.escapeXml($sSecondLevelTitle)">$cms.escapeXml($sSecondLevelTitle)</a>
- end
</syntaxhighlight>
Schleife mit foreach
<syntaxhighlight lang="xml" enclose="div">
- foreach( $entry in $slot.entries )
$entry
- end
</syntaxhighlight>