Язык ботов
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 является ли пользователь создателем бота