Хелперы в Botmother

{{addDate}}
Используется для увеличения или уменьшения даты по определенному критерию

Общий вид:

{{addDate date count type format}}
  • date — входящая дата в любом формате
  • count — значние, на которое нужно увеличить/уменьшить входящюу дату
  • type (опциональный параметр) — тип значения на которое нужно уменьшит/увеличить входящую дату. Может принимать следюущие значения: quarters, months, weeks, days, hours, minutes, seconds, milliseconds, years (значение по умолчанию)
  • format (опциональный параметр) — формат входящей даты. Имеет смысл передавать этот параметр в том случае, если хелпер не смог преобразовать входящую дату или дата имеет уникальный формат

Пример:

Например, если дата 24.05.1992, то

{{addDate "24.05.1992" 1 "years" "DD.MM.YYYY"}}

вернёт 24.05.1993


{{declension}}
Изменяет склонение слова в зависимости от числа

Общий вид:

{{declension NUMBER WORDS}}

Пример:

{{declension 10 'рецепт, рецепта, рецептов'}}

NUMBER - число;
WORDS - строка, состоящая из слов 1, 2, 5.


{{eq}}

Сравнивает переменную со значением

Общий вид:

{{eq A B OPTIONS}}

Пример:

A=10 B=10
{{#eq A B}} C {{else}} D {{/eq}}
результат будет C.

A — переменная со строкой,
B — строка


{{formatDate}}

Если мы получили дату в timestamp, можем её вывести в любом подходящем варианте. Ещё можем вывести текущее время (время будет по Москве).

Общий вид:

{{formatDate DATE FORMAT LANG}}

Пример:

{{formatDate 1527774336  'MM/DD/YYYY' 'ru'}}

DATE — дата в timestamp,
FORMAT — выходной формат даты,
LANG — язык
(‘ru’, ‘eu’ и т.д.)

Таблица с возможными обозначениями формата


{{and}}

Сравнивает две переменные, берёт значения true и false.

Общий вид:

{{and onion, cut}} yes {{else}} no {{/and}}

Если onion = true и cut = true, ответ будет yes. Если одно из значений false, ответ будет no.


Математика и числа

{{sum}}
Возвращает сумму элементов

Общий вид:

{{sum var1 var2}}

Пример:

{{sum “[1, 2, 3, 4, 5]”}} // 15
{{sum 20 variable}} // 20 + значение переменной variable


{{toFixedRub}}
Обрезает до двух знаков после запятой. Если вставить ',' в конце, будет выводить с точкой (10.65)

Общий вид:

{{toFixedRub NUM ','}}

NUM — число


{{toRub}}

Обрезает до двух знаков после запятой. Получается число с запятой (9,89)

Общий вид:

{{toRub NUM}}

NUM — число


{{random}}

Генерирует рандомное число между двумя значениями

Общий вид:

{{random MIN MAX}}

MIN — минимальное значение,
MAX — максимальное значение


Замена символов

{{escapeJsonEntities}}

Заменяет в переменной символы / и '

{{escapeJsonEntities tempVar}}

tempVar — строковая переменная


{{escapeQuotes}}

Заменяет у входной строки " на '

{{<span class="speller-hint" data-toggle="popover" data-hint="7" data-original-title="" title="">escapeQuotes</span> tempVar}}

tempVar — строковая переменная


{{urlencode}}
Кодирует каждый элемент URL с помощью в UTF-8

Общий вид:

<strong></strong>{{urlencoded URL}}

Пример:

<strong></strong>{{encodeURI "<a href="http://example.com/?comment=Thyme">http://example.com?comment=Thyme</a> &time=again”}}

Результат

http%3A%2F%2Fexample.com%3Fcomment%3DThyme%20%26time%3Dagain

URL — ссылка


Работа с объектами

{{getArrayElement}}

Возвращает элемент массива

Общий вид:

{{getArrayElement ARRAY INDEX PATH}}

Пример:

{{getArrayElement Temp_Array 1 'a[0].b.c’}}, где Temp_Array = [{ 'a': [{ 'b': { 'c': 3 } }] }] → 3

ARRAY — входной массив,

INDEX — индекс желаемого элемента,

PATH -путь к элементу внутри ARRAY[INDEX]