Язык ботов

1. Переменные

Переменные

2. Функции

Функции

3. Условия

Условия

4. Циклы

Циклы

5. Вызов другого метода

Вызов другого метода

Применительно к ботам я переопределил inport несколько иначе. Сейчас это вызов на выполнение другого куска кода. Это не функция в чистом виде, это подпрограмма, как ее называли раньше - просто выполнить другой код, который хранится в другом контроллере и экшене. А потом вернуться назад и продолжать исполнять дальше программу.

Синтаксис вызова

{import controller='cont1' action='act1'}

Как применение: необходим для разбития кода на части

6. Изменение типа сообщения

Изменение типа сообщения

Иногда нужно чтоб при накнопку формировалось следующее сообщение, а не затералось предыдущее. Для этого служит функция return

Принажатии кнопки показать диалог с кнопкой Ok
{return dialog='text'}

Принажатии кнопки показать попап
{return popup='text'}

Сказать боту, что следующее сообщение будет новое, а не затираться старое
{return next_message=1}

Таким образом можно сделать серию кнопок с короткими подсказками до 200 символов.

7. экшн Show

>итак, что такое за метод show

вот у нас есть контролер, предположим articles

я создаю этот метод сразу. Вы канеш можете в этом контроллере создавать свои типа post1 Тогда у вас полное имя метода будет /articles__post1 Но вы можете так же вызвать команду /articles - т.е. задать только имя контроллера! так вот бот преобразует этот вызов в /articles__show и выполнит этот метод.

Как правило в разделе (контроллере) есть некий стартовый встречающий пользователя раздел - типа вы попали в статьи. И как раз общий список статей можно размещать в этом методе show а команду писать просто кратко /articles - по имени контроллера

Создаем раздел help создавая метод show две команды будут идентичны /help__show /help они вызовут один и тот же код

Но если не будет найден контроллер по краткой команде то мы будем искать команду в контроллере main предположим ты набрал /contact

1. вы ищем команду /main__contact и ее исполняем
2. Если не нашли ищем команду /contact__show - по имени контроллера
3. Если не нашли - выводим текст об отсутствии команды

точно так же как на сайте есть ошибка 404

8. Пересылаемые переменные в экшене

При каждом вызове любого метода в него передаются заранее предопределенные переменные

  • $message - оригинальное значение от телеграма
  • $user - массив с параметрами текущего пользователя
  • $argv - параметры, которые передаются из команды
  • $data - служебные параметры в том числе $data.fulltext - полный текст переданного сообщения
  • $group_chat_id - ИД группового чата в котором пришла команда боту
  • $is_admin - 0\1 является ли пользователь создателем бота