Variables are indicated by a dollar sign, and may be enclosed in curly braces. Variables can appear anywhere within the scriptlet content.
Standard Syntax: $variable_name
Hello $User.FirstName!
Explicit Syntax: ${variable_name}
Hello ${User.FirstName}!
Standard syntax cannot be used if your variable is part of a larger string where the variable name would not be clearly defined. Below shows an example of incorrect use of the standard syntax, where explicit syntax must be used instead:
Incorrect with Standard syntax:
some_text$variable_namesome_more_text
Correct with Explicit syntax:
some_text${variable_name}some_more_text
When you reference variables you are accessing the object through the .NET framework. You can use traditional .NET syntax to access properties and methods. A common example might be to provide string formats:
$User.LastLoginDate.ToString("mm-ddd-yyyy")
With the nVelocity scripting language you can implement conditional logic and looping to create dynamic output. Any line that begins with a # pound sign is interpreted as a line of script.
You can employ conditional logic in your email templates with the if-end statement. For example:
#if($User.IsAnonymous)
You can register now to get the great benefits of membership!
#else
Welcome back $User.UserName!
#end
You can loop over collections of items with the foreach-end statement. For example:
Current exchange rates for currencies:
<table>
<tr><th>Currency</th><th>Rate</th></tr>
#foreach($currency in $Store.Currencies)
<tr><td>$currency.Name</td><td>$currency.ExchangeRate</td></tr>
#end
</table>
The foreach statement supports additional features to enable things like alternating rows, headers, and footers.
#foreach($i in $items)
#each
text which appears for each item
#before
text which appears before each item
#after
text which appears after each item
#between
text which appears between each two items
#odd
text which appears for every other item, including the first
#even
text which appears for every other item, starting with the second
#nodata
Content rendered if $items evaluated to null or empty
#beforeall
text which appears before the loop, only if there are items matching condition
#afterall
text which appears after the loop, only of there are items matching condition
#end
You can create new nVelocity variables using the set statement.
#set ($counter = 1)
Currencies provided by $Store.Name:<br />
#foreach($currency in $Store.Currencies)
$counter. $currency.Name<br />
#set ($counter = $counter + 1)
#end
<br />
All transactions are conducted in $Store.PrimaryCurrency.Name.
You can include comments in your nVelcoity script. Single line comments are created by starting a line with a ## double pound sign.
## single line comment will not be output
Multi line comments can also be included, by using the #* … *# syntax:
#* This is a
comment that spans
multiple lines and will
not be displayed
*#