Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: В настоящее время эта функция требует доступа к сайту с помощью встроенного браузера Safari.
Это - альфа-версия дополнения. Я не гарантирую её стабильную работоспособность и всё в этом духе. Установка исключительно на Ваш страх и риск.
Вы по прежнему можете скачать и установить последнюю стабильную на данный момент версию (2.0.4) с вкладки "История" или по этой ссылке.
Т.к. это альфа-версия, собранный билд не был опубликован на Гите.
Исправлено
- Исправлена ошибка, когда дополнение пыталось получить Entity Manager движка из неправильного места. Спасибо за репорт dimka1510.
- Исправлена (?) ошибка, когда связанные с
UserCommand
сущности (шаблон сообщения и обработчик команды) не удалялись.Добавлено
- Добавлен нестандартный рендерер бб-кодов
smTgCoreMarkdown
, преобразующий полученную строку с бб-кодами - в совместимую с Markdown v2 разметку.
Это - альфа-версия дополнения. Я не гарантирую её стабильную работоспособность и всё в этом духе. Установка исключительно на Ваш страх и риск, но могу заверить, что данная версия установлена уже около месяца на продакшн-сайте, и особых проблем не вызывала. Я честно постарался минимизировать кол-во возможных проблем.
Вы по прежнему можете скачать и установить последнюю стабильную на данный момент версию (2.0.4) с вкладки "История" или по этой ссылке.
Т.к. это альфа-версия, собранный билд не был опубликован на Гите.
Что ж, вот потихоньку мы и готовимся к улучшениям, направленным преимущественно на разработчиков. Эта версия привносит новый механизм обработки направленных боту команд - Command Dispatcher.
Суть механизма в том, что теперь Вам не нужно слушать событие создания клиента и вручную туда пропихивать обработчик Вашей команды. Вместо этого, Вы в базе создаёте запись в одной из таблиц (пример будет ниже), пишете простейший хандлер (пример так же ниже), а дальше ядро само разруливает, как до Вас добраться и что Вам передать. Просто, правда?
Так же был завезён прототип механизма, который позволит администратору объявлять свои простые обработчики команд с условно статичным текстом. Синтаксис шаблонизатора XF в текстах ответов полностью поддерживается, что позволяет делать легко и просто - подобные штуки:
В будущем планируется возможность добавлять кастомные PHP-обработчики над запросом к API Telegram (и не только), что позволит написать минимум кода для добавления кнопки в сообщение наподобие такой:
А, возможно, и полноценный конструктор (если осилю вёрстку). Но пока как-то так.
Полный список изменений
Добавлено
Command Dispatcher
. Новый механизм, нацеленный на повышение простоты реализации своих команд.- Встроенный механизм для "регистрации" своих небольших, простых команд. В будущем планируется развитие механизма.
Изменено
- Все реализации стандартных команд (
/start
,/auth
) переехали на новый механизм.- Рефакторинг энтити БД и сервиса установки веб-хука.
- Для работы теперь требуется [SModders] Core v1.0.2.3
Удалено
- Импортёр данных с первой версии более не включен в состав ядра, и будет выложен позднее отдельным дополнением. Если Вам действительно необходимо обновиться с первой ветки (а импортёра всё ещё нет) - лучше сначала установите 2.0.4 и/или ниже, выполните импорт, а после - обновитесь.
Пример обработчика
Самый простейший обработчик команды для нового Command Dispatcher:
А для регистрации - Вам понадобится создать энтити и сохранить её.PHP:<?php /** * This file is a part of "[Telegram] Chat Access" addOn for XF v2.1. * All rights is reserved. * * Developed by SourceModders. */ namespace SModders\TelegramChatAccess\ChatCommand; use SModders\TelegramCore\ChatCommand\AbstractHandler; use TelegramBot\Api\Types\Message; class ChatSetup extends AbstractHandler { public function run(Message $message, array $parameters = []) { $user = \XF::visitor(); // $user - это пользователь внутри XF, запустивший команду, если есть привязанный аккаунт; иначе гость if ($user->is_admin) { $chatId = $message->getChat()->getId(); /** @var \XF\Repository\Option $optionRepo */ $optionRepo = $this->app->repository('XF:Option'); $optionRepo->updateOption('smodders_tgchataccess__chat_id', $chatId); $this->telegramClient->sendMessage($chatId, \XF::phrase('smodders_tgchataccess__bot.changed_chat', ['user' => $user->username])); } return $this->next($message, $parameters); // next() нужен, чтобы разрешить диспатчеру "провалиться" дальше и искать ещё обработчики команды. $message и $parameters здесь фигурируют, если Вы хотите немного поменять контекст для следующих обработчиков. } }
Так же, Вы можете вручную внести запись в таблицуPHP:/** @var \SModders\TelegramCore\Entity\Command $command */ $command = \XF::app()->em()->create('SModders\TelegramCore:Command'); $command->bulkSet([ 'name' => 'chat_setup', 'provider_class' => 'SModders\TelegramChatAccess:ChatSetup', 'execution_order' => 10 // стандартное значение, необязательно передавать ]); $command->save();
xf_smodders_tgcore_command
, но тогда Вам ещё придётся после внесения записи запускать метод репозитория на перестроение кеша обработчиков команд:
PHP:\XF::app()->repository('SModders\TelegramCore:Command') ->rebuildAddOnCommandsCache();
Реализована своя обёртка над\XF::asVisitor()
, который, помимо установки активного пользователя, так же изменяет язык и стиль. Это необходимо для внутреннего функционала аддона и его модулей.
Как итог, исправлена назойливая "фича", когда бот отправлял сообщения для стандартного языка для той же авторизации:
Исправлена ошибка, которая могла вылезать если пользователь заблокировал общение с ботом сразу же после отправки команды авторизации.
Удалены классыSModders\TelegramCore\AuthMethod
. Теперь используется по-умолчанию страница с кнопкой, с вариантом перехода к боту (если кнопка не отображается).
Спасибо root за обновление страницы с кнопкой.
[Настройки]
- В раздел настроек аддона добавлена панель с некоторыми администраторскими действиями:
- Проверка подключения до Telegram API;
- Получение информации от Telegram касательно текущего состояния вебхуков (есть ли ошибки в доставке, сколько ещё сообщений не доставлено до движка и др.);
- Обновление данных веб-хука. Может быть полезно, если ссылка не совпадает по некоторым причинам.
- Добавлена проверка на использование
HTTPS
протокола для доставки веб-хуков. Если ссылка на форум указана сhttp
или прокси используется сhttp
протоколом - аддон известит Вам об этом при попытке сменить режим работы.
[Локализация]
- Вынесена забытая строчка текста в фразу (сообщение о необходимости прокси на странице настройки провайдера -
smodders_tgcore.proxy_message
).- Добавлено множество новых фраз, связанных с настройками и состоянием.
Официальный релиз 2.0.0. С этого момента, ветка 1.х считается устаревшей и не поддерживается.
По сравнению с прошлым RC5, добавлен сток в контейнер для временной смены активного посетителя-пользователя - на другого, к которому привязан переданный аккаунт Telegram.
Добавлен импортёр данных с [Telegram] Core 1.x.
Минимально требуемая версия старого ядра для старта импорта - 1.0.7 и выше.
Для импорта, необходимо, чтобы старое ядро было установлено. После произведения операции импорта, его можно удалить.
Импортёр добавляется в подраздел "Импорт данных" в админке (/admin.php?import/
):
Это - последняя, предрелизная версия. Если до конца октября проблем не возникнет - выйдет финальный патч с небольшими изменениями уже под видом релизной версии.
- Изменён способ формирования ссылки на контроллер для веб-хуков. За репорт о баге спасибо hurtman
- Добавлены забытые заголовки в некоторых файлах исходников
- Исправлена ошибка в удалении связанных с аддоном аккаунтов при деинсталляции
Мы используем основные cookies для обеспечения работы этого сайта, а также дополнительные cookies для обеспечения максимального удобства пользователя.
Посмотрите дополнительную информацию и настройте свои предпочтения