isaak.io
Search…
Хелперы
В Issak используются различные хелперы. Подключены такие группы, как «math», «string», «array», «conditional».
Хелперы - это помощники, которые могут что-то сделать с переменными. Они бывают двух видов: строчные и блочные.
Строчные хелперы выглядят очень просто, они начинаются с имени хелпера и могут включать в себя N переменных:
{{helper var1 var2}}
Блочные хелперы выглядят так: #имяхелпера - начало блока, /имяхелпера - конец блока. У блочного хелпера есть начало, тело с текстом и переменными и конец. Как правило, блочные хелперы используются для вывода какого-либо текста в зависимости от условий.
{{#helper var1 var2}}
Текст и переменные
{{/helper}}

Условия

Сравнение переменной

В качестве примера попросим пользователя указать свой пол и запишем в переменную gender. В зависимости от пола нужно направить разный текст. Для этого используется блочный хелпер сравнения eq:
В примере видно, как открывается блочный хелпер #eq, затем используется переменная gender и строка Женский. Затем закрывается блочный хелпер /eq. Помимо переменных сравниваться могут строки и числа.
У хелперов предназначенных для сравнения можно использовать специальный разделитель {{else}}. В нашем примере в переменную gender записана строка "Женский", поэтому будет выводиться текст "Спасибо, что написала", во всех остальных случаях - "Спасибо, что написал".

Сравнение "больше" или "меньше"

Для сравнения чисел существует два блочных хелпера #gt и #lt:
gt - больше, чем lt - меньше, чем
Cпросим у пользователя его возраст и запишем в переменную age. Открываем блочный хелпер #gt, указываем переменную age и возраст 17. Если введенный возраст 18 и старше - выводится сообщение "Добро пожаловать!", во всех остальных случаях с помощью разделителя {{else}} выводится сообщение "Ботом можно пользоваться только с 18 лет".
Чтобы сравнивать включительно числу, существуют дополнительные хелперы #gte и #lte
gte - больше или равно lte - меньше или равно
Блочные хелперы можно вкладывать друг в друга. Объединим переменную gender и age.

Часто используемые хелперы сравнения

#eq - равенство переменных
1
{{#eq var1 var2}}
2
Переменная var1 равна переменной var2
3
{{else}}
4
Переменные не равны (необязательный текст)
5
{{/eq}}
Copied!
#lt - первая переменная меньше второй
1
{{#lt var1 var2}}
2
Переменная var1 меньше, чем var2
3
{{else}}
4
Переменная var2 меньше, чем var1 (необязательный текст)
5
{{/lt}}
Copied!
#lte - первая переменная меньше либо равна второй
1
{{#lte var1 var2}}
2
Переменная var1 меньше либо равна var2
3
{{/lte}}
Copied!
#gt - первая переменная больше второй
1
{{#gt var1 var2}}
2
Переменная var1 больше, чем var2
3
{{else}}
4
Переменная var2 больше, чем var1 (необязательный текст)
5
{{/gt}}
Copied!
#gte - первая переменная больше либо равна второй
1
{{#gte var1 var2}}
2
Переменная var1 больше либо равна var2
3
{{/gte}}
Copied!
#if - если переменная var1 существует и в ней не ложное значение
1
{{#if var1}}
2
Необходимый текст
3
{{else}}
4
Обратное условие (необязательный текст)
5
{{/if}}
6
Copied!
Дополнительные хелперы сравнения можно посмотреть здесь.

Математика

Isaak поддерживает хелперы для основных математических операций. Все хелперы математики - линейные.

Сложение

Для сложения чисел используется хелпер add:
1
{{add var1 var2}}
Copied!
Как и в блочных хелперах, можно использовать литеральные значения:
1
{{add 200 45}}
Copied!
В результате в сообщении будет выведен текст "245".

Вычитание

Для вычитания одного числа из другого используется хелпер subtract:
1
{{subtract var1 var2}}
Copied!
1
{{subtract 245 200}}
Copied!

Умножение

Для умножения используется хелпер multiply:
1
{{multiply var1 var2}}
Copied!

Деление

Для деления используется хелпер divide:
1
{{divide var1 var2}}
Copied!
Дополнительные математические хелперы можно посмотреть здесь.

Комментарии

Существует специальный хелпер для комментариев, которые не будут отправлены пользователю. Для этого достаточно обернуть текст:
1
{{!-- Комментарий, который не увидит пользователь --}}
Copied!
Использование комментариев удобно для пояснения, если у вас большое количество используемых хелперов.

Массивы и списки

Вывод массивов

{{#each}}{{/each}}

Для того, чтобы вывести все элементы массива используется хелпер #each. Например, осуществляем запрос к некой базе, получаем из нее список с породами кошек и записываем в переменную breeds. Далее пользователь должен выбрать нужную породу.
1
[
2
"Сиамская",
3
"Мейн-кун",
4
"Бенгальская"
5
]
Copied!
Каждый из элементов массива внутри хелпера #each доступен как переменная this:
1
Выберите породу:
2
{{#each breeds}}
3
{{this}}
4
{{/each}}
Copied!
Сообщение, которое увидит пользователь: Выберите породу: Сиамская Мейн-кун Бенгальская
Также внутри хелпера #each доступна специальная переменная @index, которая присваивает элементу порядковый номер, стоит заметить, что элементы массива нумеруются начиная с нуля. Внутри #each можно использовать любые линейные хелперы.
1
Выберите породу:
2
{{#each breeds}}
3
{{sum @index}}. {{this}}
4
{{/each}}
Copied!
Сообщение, которое увидит пользователь: Выберите породу: 0. Сиамская 1. Мейн-кун 2. Бенгальская
1
Выберите породу:
2
{{#each breeds}}
3
{{sum @index 1}}. {{this}}
4
{{/each}}
Copied!
Сообщение, которое увидит пользователь: Выберите породу: 1. Сиамская 2. Мейн-кун 3. Бенгальская

{{itemAt}}

Данный хелпер возвращает элемент массива с заданным индексом. Например:
1
Выберите дату посещения:
2
{{!-- dates: ['9-30', '10-00', '10-30'] --}}
3
4
{{#each response.body.dates}}
5
{{itemAt this.dates 1}}
6
{{/each}}
7
8
{{!-- results in: '10-00' --}}
Copied!
Более подробная информация о встроенных хелперах с примерами находится по этой ссылке.
Last modified 5mo ago