Table of Contents

Blesta 3.0 uses the H2o Template system for parsing Email Templates. The following is an overview of its basic usage. We've overridden the default {{ var_name }} with { var_name } for simplicity, but that's the only way in which the following documentation differ from any official H2o documentation.

Conditional Statements

{% if id > 3 %}

This will print out if $id is > 3

{% endif %}

Loops

{% for user in users %}

Name: {user.first_name} {user.last_name}

{% endfor %}

Assuming:

$users = array(
    array(
         'first_name'=>"First name",
         'last_name'=>"Last name"
    ),
    array(
         'first_name'=>"First name 2",
         'last_name'=>"Last name 2"
    )
);

Loops can also take advantage of limits:

{% for user in users limit:1 %}

The above would only cycle through the loop one time.

Filters

Filters are applied to individual variables and are preceded by a pipe symbol (|). Parameters are passed to filters using a comma (,) separated list.

{past_due | set_default "Not past due"} // Produces "Not past due" if past_due is false

Multiple filters can be applied in succession:

{past_due | set_default "not past due" | capitalize} // Produces NOT PAST DUE if past_due is false

Supported Filters

FilterDescriptionExample Usage
currency_format

Formats the value into a currency string.

Parameters

  1. currency code
{"1.2345" | currency_format "USD"}

For Invoice Delivery Email templates, you can use this example which includes the currency code and invoice total tags.

{invoice.total | currency_format invoice.currency}
md5Hashes the value using MD5.
{"some string" | md5}
sha1Hahses the value using SHA1.
{"some string" | sha1}
numberformat

Formats the value into a number.

Parameters

  1. number of decimal places
  2. decimal point character
  3. thousands separator character
{"12345.6789" | numberformat 2, ".", ","}
wordwrap

 Wraps a string into multiple lines.

Parameters

  1. number of characters per line
  2. break string
 {"some string" | wordwrap 5, "\n<br />"}
trimRemoves white space around a string.
{" some string " | trim}
upperConverts a string to uppercase.
 {"some string" | upper}
lowerConverts a string to lowercase.
 {"SOME STRING" | lower}
firstReturns the first element of an array.
 {array_of_items | first}
lastReturns the last element of an array.
{array_of_items | last} 
join

Combines an array of elements into a delimited string.

Parameters

  1. delimiter (default is ', ')
 {array_of_items | join ', '}
lengthReturns the length of an array.
 {array_of_items | length}
urlencodeURL encodes an string or array of parameters.
 {array_of_items | urlencode}
hyphenizeReplaces white space with hyphens.
 {"some string" | hyphenize}
urlize

Converts a URL into an HTML link.

 {"http://domain.com/" | urlize}
set_default

Sets a default value when no other value exists.

Parameters

  1. default value
 {not_set | set_default "default value"}
humanize
 
capitalize
 
capfirst
 
tighten_space
 
escape
 
escapejson
 
force_escape
 
truncate
 
limitwords
 
filesize
 
image_tag
 
css_tag
 
script_tag
 
links_to
 
links_with
 
strip_tags
 
linebreaks
 
nl2br
 
nl2pbr
 
htmlAttribute
 
extract
 
date
{"some date string" | date "Y M d"} eg.
{invoice.date_due | date "Y M d"}
relative_time
 
relative_date
 
relative_datetime
 
safePrevents the default HTML filtering from being applied. Considers the string safe.
{"some string" | safe}

Debugging

Adding the following tag to any email template will enable debugging, and display data key value pairs:

{% debug %}
  • No labels