Перейти к содержанию

Установка RePost

Требования

  • DLE ≥ 20.0
  • PHP ≥ 8.3
  • DevCraft Admin ≥ 200.4.0 (needplugin)
  • Composer-пакеты в devcraft/: luzrain/telegram-bot-api, guzzlehttp/guzzle (vendor не входит в архив плагина)

Шаги

  1. Установите плагин через менеджер плагинов DLE (архив с install.xml, engine/, devcraft/).
  2. В каталоге devcraft/ выполните (если пакетов ещё нет):
Bash
composer require luzrain/telegram-bot-api guzzlehttp/guzzle
composer dump-autoload
  1. Откройте админку → RePost. При первом заходе Cycle ORM создаст таблицы:
  2. {prefix}_repost_connections
  3. {prefix}_repost_templates
  4. {prefix}_repost_proxies
  5. {prefix}_repost_cron

  6. Создайте подключение 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.phprepostRunCron() в конце авто-cron DLE

Корневой cron.php не патчится.

Структура модуля

Text Only
1
2
3
4
devcraft/src/modules/RePost/
engine/inc/repost.php
engine/modules/devcraft/repost.php
devcraft/config/repost.json

AJAX только через devcraft/ajax.php?mod=repost&controller=admin&method=….