Условия

Они нужны, чтобы показать переменную или текст в зависимости от определенных условий.

Сравнение переменной со значением или другой переменной

Давайте представим, что у нас есть переменная gender, в которую мы через развилку запишем мужчина или женщина в зависимости от того, что клиент написал боту.
И теперь хотим в зависимости от пола отправить клиентам разный текст.
Мы можем использовать блочный хелпер сравнения переменных eq:
Привет!
{{#eq gender "женщина"}}
Хорошо, что ты написала!
{{/eq}}
{{#eq gender "мужчина"}}
Хорошо, что ты написал!
{{/eq}}
Что тут происходит?
Мы открыли блочный хелпер #eq и использовали с ним переменную gender и строку женщина.
В примере видно, что вместо переменных мы можем сразу использовать так называемые литералы. Т. е. мы можем сравнивать не только переменные, но и сразу строки и числа.
Строки нужно записывать в двойных программных кавычках ".
И после тела блока мы закрыли его /eq. Блочные хелперы всегда нужно закрывать, иначе в шаблоне случится ошибка, и бот ничего не пришлет.
У многих блочных хелперов, которые используются для сравнений, есть так называемый альтернативный блок.
Давайте еще раз посмотрим на наш пример, у нас может быть только мужчина и женщина — всего два варианта.
Мы можем не делать для каждого из вариантов свой блок, а использовать специальный разделитель {{else}}:
Привет!
{{#eq gender "женщина"}}
Хорошо, что ты написала!
{{else}}
Хорошо, что ты написал!
{{/eq}}
Т. е. если в переменной gender записана строка женщина, то бот напишет: Привет! Хорошо, что ты написала!, а во всех остальных случаях: Привет! Хорошо, что ты написал!

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

Чтобы сравнить два числа на меньше или больше есть два блочных хелпера #lt и #gt соответственно.
ltless than — меньше чем
gtgreater than — больше чем
Представьте, что в боте мы спросили клиента, сколько ему лет, и добавили еще одну переменную, в которую записали возраст — age.
Допустим, мы хотим предупредить, что пользоваться ботом можно только если клиент старше 16 лет. Если клиент младше, то попросим его не пользоваться ботом.
{{#lt age 16}}
К сожалению, ботом нельзя пользоваться до 16 лет
{{/lt}}
Аналогично можно сделать и с хелпером #gt и разделителем {{else}}
{{#gt age 15}}
{{else}}
К сожалению, ботом нельзя пользоваться до 16 лет
{{/gt}}
Вышло немного нелогично. Потому что нам нужны те, кому 16 лет и старше, а получились те, кому строго больше 15.
Чтобы в подобных случаях сравнивать включительно числу, есть дополнительные хелперы #lte (меньше или равно) и #gte (больше или равно).
Перепишем последний пример на #gte и добавим приветствие для подходящих клиентов:
{{#gte age 16}}
Ого! Добро пожаловать, вам так много лет!
{{else}}
К сожалению, вам еще нет 16 лет
{{/gte}}
Кстати, блочные хелперы можно друг в друга вкладывать. Давайте объединим два примера:
{{#gte age 16}}
Ого! Добро пожаловать!
{{#eq gender "женщина"}}Вы такая взрослая!{{else}}Вы такой взрослый!{{/eq}}
{{else}}
К сожалению, вам еще нет 16 лет
{{/gte}}

Все хелперы сравнения

#eq — равны ли переменные?
{{#eq переменная1 переменная2}}
Если переменные равны
{{else}}
Необязательный текст, если переменные не равны
{{/eq}}
#lt — первая переменная меньше второй?
{{#lt переменная1 переменная2}}
Если первая переменная меньше
{{else}}
Необязательный текст, если вторая переменная меньше
{{/lt}}
#gt — первая переменная больше второй?
{{#gt переменная1 переменная2}}
Если первая переменная больше
{{else}}
Необязательный текст, если вторая переменная больше
{{/gt}}
#if — переменная существует и в ней «правдивое значение»?
{{#if переменная}}
Если переменная существует и в ней НЕ пустая строка "", ноль 0, логическая ложь false, ссылка на «ничего» null
{{else}}
Необязательные текст, для обратного условия
{{/if}}
#lte — первая переменная меньше или равна второй?
{{#lte age 16}}
К сожалению, ботом нельзя пользоваться до 16 лет
{{/lte}}
#gte — первая переменная больше или равна второй?
{{#gte age 16}}
Ого! Добро пожаловать, вам так много лет!
{{/gte}}
Ботмама поддерживает и другие хелперы сравнения (comparison), но не гарантирует их работу в будущих обновлениях.