Table of Contents

How to change and customize email templates.

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"}
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 
 

Debugging

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

{% debug %}