Вышло обновление 66: Новый редактор писем. (Подробнее.)

Сценарии использования Velocity


Обращение к вложенному объекту

Позволяет обращаться к переменным, находящимся в объекте подстановок.

 

Пример подстановок (параметр global_substitutions — email/sendtemplate/set; substitutions — email/send):

...
 "substitutions": 
        {
          "person": 
            {
               "name":"John",
               "secondName":"Doe",
               "age":"26"
            }
        }

 

Пример использования подстановок (параметры body.html, body.plaintext, body.amp, subject, headers, options.unsubscribe_url, from_name — email/sendtemplate/set):
"html":"<h1>Hello, $person.name $person.secondName !</h1>"

 

 


Итерация массива (внутри вложенного объекта/массива)

Позволяет вызывать и итерировать элементы массива подстановок. Есть возможность итерирования массива внутри другого массива, или вложенного объекта подстановок.

 

1. Пример подстановок (параметр global_substitutions — email/sendtemplate/set; substitutions — email/send):

...
 "substitutions": 
        {
          "petList": 
            [
                {
                  "name":"John",
                  "price":"30"
                },
                {
                  "name":"Harold",
                  "price":"15"
                }
            ]
        }

Пример использования подстановок (параметры body.html, body.plaintext, body.amp, subject, headers, options.unsubscribe_url, from_name — email/sendtemplate/set):

"html":
 "#foreach( $pet in $petList )
    $pet.name for only $pet.price
 #end"

 

2. Пример подстановок (параметр global_substitutions — email/sendtemplate/set; substitutions — email/send):

...
 "substitutions": 
        {
          "DogsAndCats":
            [
              {
               "pet":
                 [
                  {
                   "concreteAnimal":"Brown Cat"
                  }
                 ]
              }
            ]
        }

Пример использования подстановок (параметры body.html, body.plaintext, body.amp, subject, headers, options.unsubscribe_url, from_name — email/sendtemplate/set):

 
"html":
"#foreach( $pet in $DogsAndCats)
  #foreach( $concreteAnimal in $pet.pet)
    Buy this $concreteAnimal.concreteAnimal
  #end
#end"

 

 


Обращение к N элементу массива

Позволяет вызвать элемент массива с указанным индексом.

 

Пример подстановок (параметр global_substitutions — email/sendtemplate/set; substitutions — email/send):

...
 "substitutions": 
        {
          "petList": 
            [
                {
                  "name":"John",
                  "price":"30"
                }
            ]
        }

Пример использования подстановок (параметры body.html, body.plaintext, body.amp, subject, headers, options.unsubscribe_url, from_name — email/sendtemplate/set):

"html":
"$petList.get(0).get("name")"

 

 


Обращение к индексу текущего элемента массива

Позволяет возвращать индекс элемента массива.

 

Пример подстановок (параметр global_substitutions — email/sendtemplate/set; substitutions — email/send):

...
 "substitutions": 
        {
          "catsArray": 
            [
              "cat":"black" 
            ]
        }

Пример использования подстановок (параметры body.html, body.plaintext, body.amp, subject, headers, options.unsubscribe_url, from_name — email/sendtemplate/set):

"html":
"#foreach( $cat in $catsArray )
  Index of $cat is  $catsArray.indexOf($cat)
#end"

 

 


Приведение к lowercase

Приводит строку к нижнему регистру.

 

Пример подстановок (параметр global_substitutions — email/sendtemplate/set; substitutions — email/send):

...
 "substitutions": 
        {
          "UpperCASE":"TEST" 
        }

Пример использования подстановок (параметры body.html, body.plaintext, body.amp, subject, headers, options.unsubscribe_url, from_name — email/sendtemplate/set):

"html":
"$UpperCASE.toString().toLowerCase()"

 

 


URL и HTML кодирование

Позволяет экранировать спецсимволы URL и HTML.

 

Пример подстановок (параметр global_substitutions — email/sendtemplate/set; substitutions — email/send):

...
 "substitutions": 
        {
          "url": "hello here & there",
          "html_code":"\’bread\" & \"butter\’"
        }

Пример использования подстановок (параметры body.html, body.plaintext, body.amp, subject, headers, options.unsubscribe_url, from_name — email/sendtemplate/set):

"html":
"$esc.html($html_code)
$esc.url($url)"

 

 


Вывод даты в формате dd-mm-yyyy

Позволяет возвращать данные типа “date” в удобном для дальнейшего использования формате.

Внимание: переменные для подстановок типа “date” обязательно должны начинаться с “date_”, например, “date_Birthdate”

 

Доступные для использования форматы даты:

  • dd/mm/yyyy
  • dd-mm-yyyy hh:mm:ss
  • yyyy/mm/dd HH:mm:ss
  • yyyy mm dd HH:mm:ss
  • ISO 8601 2004-02-12T15:19:21+00:00
  • RFC 2822 Thu, 21 Dec 2000 16:01:07 +0200

 

Пример подстановок (параметр global_substitutions — email/sendtemplate/set; substitutions — email/send):

...
 "substitutions": 
        {
          "date_Birthdate":"01/01/1970" 
        }

Пример использования подстановок (параметры body.html, body.plaintext, body.amp, subject, headers, options.unsubscribe_url, from_name — email/sendtemplate/set):

"html":
"$dateFormat.format('yyyy-M-d', $date_Birthdate)"

$dateFormat.format позволяет изменить формат переданной даты. Доступны следующие форматы даты:

 

 $date                                    -> Oct 19, 2003 9:54:50 PM
 $date.long                             -> October 19, 2003 9:54:50 PM PDT
 $date.medium_time                -> 9:54:50 PM
 $date.full_date                       -> Sunday, October 19, 2003
 $date.get('default','short')       -> Oct 19, 2003 9:54 PM
 $date.get('yyyy-M-d H:m:s')   -> 2003-10-19 21:54:50

 


Реализация if/else

Позволяет вставлять в шаблон письма условные конструкции if/else.

 

Пример подстановок (параметр global_substitutions — email/sendtemplate/set; substitutions — email/send):

...
 "substitutions": 
        {
          "shoeSize":"5" 
        }

Пример использования подстановок (параметры body.html, body.plaintext, body.amp, subject, headers, options.unsubscribe_url, from_name — email/sendtemplate/set):

"html":
"These shoes are  
  #if( $shoeSize > 5 )
      too big
  #elseif( $shoeSize < 5 )
      too small
   #else
      just right
   #end
   for my brother."