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

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



Debugging

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

{% debug %}