## Поддержка шаблонов и конфигурации ### Основные секции ```xml ``` ### Actions Action - Это действие пользователя бота, которое бот должен обработать, а также соответсвующая кнопка или inline-кнопка. ```xml Help ``` `id`, `name` - идентификаторы узла (экшена) `command` - команда Telegram, должна начинаться со знака "/" `requestContact="true|false"` - кнопка запроса контактных данных `requestLocation="true|false"` - кнопка запроса метоположения содержимое тега - вводимый текст, используется как экранная кнопка `url` - ссылка для inline-кнопки `callbackData` - callback данные для inline-кнопки `callbackDataRegexp` - regexp для обработки callback программным способом `callbackDataStartWith` - префикс, для обработки callback программным способом ### Screens Screen - то, что бот ответит пользователю, обычно текст и набор кнопок с действиями. В качестве текста может задаваться шаблон, контекст передается при программной обработке при установленном `TemplateRenderer` ```xml This is demo bot ``` `mediaRef` - ссылка на элемент медиа, который будет оправлен ботом `text` - выводимый текст `keyboard` - описание клавиатуры ### Keyboard Описание клавиатуры #### Row Одна строка кнопок клавиатуры #### Button `if` - видимость кнопки, значение `true`, `false` или имя метода из контекста экрана (для программной обработки) `actionRef` - `id` или `name` action, описанный в соответсвующей секции Если кнопка не ссылается на action, то можно задать следующие свойства: `url` - ссылка для inline-кнопки `callbackData` - callback данные для inline-кнопки `callbackDataRegexp` - regexp для обработки callback программным способом `callbackDataStartWith` - префикс, для обработки callback программным способом ### Commands Простая команда, при совершении `action` будет выведен `screen`. Используется для простых действий, не требующей программной логики. ```xml ``` `actionRef` - ссылка на action, может использоваться id или name `screenRef` - ссылка на screen, может использоваться id или name `edit` = `true|false`- исходное сообщение будет отредактировано (актуально для callback) `replace` = `true|false`- исходное сообщение будет удалено, и отправлено новое (актуально для callback, если меняется тип сообщения т.е. сообщение с фото, видео должно быть заменено на текстовое и наоборот) ### Media Описывает медиа-ресурсы, доступные для отправки ботом ```xml ```