DevCraft Документации
РазработкиDatalife Engine (DLE)Re: Post - Пересылка новостей

Установка 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/ выполните (если пакетов ещё нет):
composer require luzrain/telegram-bot-api guzzlehttp/guzzle
composer dump-autoload
  1. Откройте админку → RePost. При первом заходе Cycle ORM создаст таблицы:

    • {prefix}_repost_connections
    • {prefix}_repost_templates
    • {prefix}_repost_proxies
    • {prefix}_repost_cron
  2. Создайте подключение Telegram и шаблон (активные подключение + шаблон).

Логи

Сбои и успехи отправки пишутся через LogGenerator::for('RePost') → Admin → Logs, модуль/плагин RePost:

УровеньКогда
errorSendResult::fail, нет шаблонов/подключения/провайдера
infoстарт dispatch, успешная отправка / постановка в cron
debugmatched 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 не патчится.

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

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=….

On this page