Установка RePost
Требования
- DLE ≥ 20.0
- PHP ≥ 8.3
- DevCraft Admin ≥ 200.4.0 (
needplugin) - Composer-пакеты в
devcraft/:luzrain/telegram-bot-api,guzzlehttp/guzzle(vendor не входит в архив плагина)
Шаги
- Установите плагин через менеджер плагинов DLE (архив с
install.xml,engine/,devcraft/). - В каталоге
devcraft/выполните (если пакетов ещё нет):
composer require luzrain/telegram-bot-api guzzlehttp/guzzle
composer dump-autoload-
Откройте админку → RePost. При первом заходе Cycle ORM создаст таблицы:
{prefix}_repost_connections{prefix}_repost_templates{prefix}_repost_proxies{prefix}_repost_cron
-
Создайте подключение Telegram и шаблон (активные подключение + шаблон).
Логи
Сбои и успехи отправки пишутся через LogGenerator::for('RePost') → Admin → Logs, модуль/плагин RePost:
| Уровень | Когда |
|---|---|
| error | SendResult::fail, нет шаблонов/подключения/провайдера |
| info | старт dispatch, успешная отправка / постановка в cron |
| debug | matched template ids, tg_send_type, counts media, proxy — только если включён debug DevCraft |
Токен бота в payload не логируется явно как отдельное поле (в raw ответах API его тоже не должно быть).
Хуки (install.xml)
Плагин патчит через <file> (не правьте DLE вручную в репозитории):
engine/inc/addnews.php→ форма RePost +sendRepost($id, 'addnews', $options)engine/inc/editnews.php→ форма RePost +sendRepost($id, 'editnews', $options)engine/modules/addnews.php→ форма в{admintag}+sendRepost($insert_id, 'addnews', $options)- удаление новости → очистка очереди
engine/modules/cron.php→repostRunCron()в конце авто-cron DLE
Корневой cron.php не патчится.
Структура модуля
devcraft/src/modules/RePost/
engine/inc/repost.php
engine/modules/devcraft/repost.php
devcraft/config/repost.jsonAJAX только через devcraft/ajax.php?mod=repost&controller=admin&method=….