Плагин Telegram
Популярные запросы: Open Graph, плагин Reading Time, тема Quebec, плагин Telegram, набор иконок Analogue
- 316 просмотров +3
- 30 ноября, 2025
- Обновлено: 14 декабря, 2025
- admin
- Время чтения: 4 минуты
- 2 (Подробно)
Форма обратной связи является традиционным и обязательным элементом любого веб-сайта. Алгоритмы получения фидбека от посетителей могут быть разными и, в-основном, варьируются между отправкой данных на почту и записью их в MySQL базу данных.
Рост популярности мессенджеров определяет необходимость в использовании этих приложений, в частности Телеграм, для получения и дальнейшей обработки данных обратной связи. Именно для этого был написано одноименное расширение для CMS Cotonti Siena.
Установка и настройка плагина Telegram
Работа плагина Telegram зависит от некоторых особенностей как движка, так и самого мессенджера. Если говорить конкретно, то это связано с двумя моментами:
- алгоритмом получения сообщений в Telegram,
- ограничениями файла настроек расширений Cotonti Siena.
Предварительные настройки Телеграм бота
Начнем с настройки Телеграм. Первое действие – создание Телеграм бота, который будет получать обратную связь с сайта и перенаправлять в указанную локацию (пользователю или группе).
Ищем и открываем бот под названием BotFather и командой
/newbot
создаем нового бота. Для этого необходимо ввести два параметра:
- name (человекопонятное имя),
- username (алиас, который обязательно должен оканчиваться подстрокой “bot”).
После создания бота копируем его token. Он понадобится нам в дальнейшем для настройки плагина. Если с первой попытки не вышло, токен можно пересоздать командой
/revoke
Уведомления от бота может получать только один подключившийся пользователь (остальные увидят их только при обращении). На этом пока остановимся и получим id вашего аккаунта. Для этого обратимся к боту userinfobot и введем команду
/start
Полученный id сохраним.
Установка и конфигурирование плагина
Инсталляция стандартная: скачиваем, выгружаем, устанавливаем. Дальше начинается одна маленькая особенность. Возможно, вы уже заметили, что в токене Телеграм бота используется символ “:”. Но в файле настроек любого расширения Cotonti именно этот символ используется в качестве разделителя. Таким образом, единственный выход – использование конфигурационного файла. Дефолтный файл находится здесь: plugins\telegram\inc\telegram.cfg.default.php. Как видим, в нем присутствуют три конфигурационные переменные:
$telegram_bot_token,$telegram_chat_id,$telegram_title.
По первым двум все понятно, а в третьей укажем понятное название сайта, с которого будет приходить обратная связь. Это будет полезно при нескольких отслеживаемых проектах.
Чтобы не перезаписать дефолтный файл при обновлении плагина, скопируем его под удобным или понятным названием, например plugins\telegram\inc\telegram.cfg.my_project.php и заполним нашими данными. Для подключения укажем подстроку my_project в единственной настройке нашего плагина:
Настройка шаблона и вывод формы
В комплекте плагина идет дефолтный TPL-шаблон с простой формой из трех элементов:
- имя,
- телефон,
- электронная почта,
- сообщение.
Для вывода шаблона используется функция sedby_telegram_widget(), принимающая единственный аргумент:
-
$tpl = ‘telegram’– указывает имя шаблона
Таким образом, разместить форму обратной связи в шаблоне можно с помощью ее простого вызова:
{PHP|sedby_telegram_widget()}
Валидация средствами HTML5 на стороне клиента. Через кастомный шаблон можно подключить собственный Javascript или jQuery валидатор.
Тестирование и расширение возможностей плагина
Если все настройки выполнены правильно, на странице будет выведена дефолтная форма обратной связи. При правильном заполнении формы она будет отправлена боту, а ваш аккаунт получит уведомление:
Обратите внимание на то, что вместе с данными вы получите IP отправителя.
При необходимости получения дополнительной информации можно использовать хук telegram.add.content.
Предположим, ваши формы располагаются на различных страницах сайта. Модифицируем атрибут action формы в шаблоне плагина для передачи названия страницы:
action="index.php?r=telegram&a=send&location={PHP.pag.page_title}"
В проектном плагине создаем часть с указанным хуком со следующим содержимым:
<?php
/* ====================
[BEGIN_COT_EXT]
Hooks=telegram.add.content
[END_COT_EXT]
==================== */
defined('COT_CODE') or die('Wrong URL');
$location = cot_import('location', 'G', 'TXT');
$content .= Cot::$L['Location'] . ": " . $location . "\n";
Теперь в сообщении вы получите также и название страницы:
Для кастомизации желательно использовать собственный TPL-шаблон.
По умолчанию плагин Telegram доступен в локации страниц модуля Page (хук page.tags). При необходимости расширить доступность, используйте часть проектного плагина с соответствующим хуком. Например, для разделов страниц:
<?php
/* ====================
[BEGIN_COT_EXT]
Code=telegram
Hooks=page.list.tags
[END_COT_EXT]
==================== */
defined('COT_CODE') or die('Wrong URL');
require_once cot_langfile('telegram', 'plug');
require_once cot_incfile('telegram', 'plug');
Resources::linkFileFooter('plugins/telegram/js/telegram.js', 'js');
Отправка уведомлений нескольким аккаунтам Telegram
Часто необходимо сделать так, чтобы уведомления и сами сообщения об отправке форм с сайта получали несколько telegram-аккаунтов. Для этого создаем группу, куда добавляем нашего бота (с параметрами администратора) и другие необходимые аккаунты.
Теперь заходим в бот IDBot и командой
/getgroupid
получаем id группы (должен начинаться с “-100”). Указываем данный код в параметре $telegram_chat_id. Теперь данные обратной связи будут приходить в группу, в все ее участники – получить соответствующие уведомления.
Приятного использования. Свои отзывы, пожелания и багрепорты отставляйте в комментариях на нашем сайте (не требуют регистрации) или в Issues на Github.
| 10.12.2025 | Пакет мелких исправлений от 10 декабря 2025 г. |
Новый комментарий
Ошибка
Выполнено