DevCraft Документации

Установка RePost

Требования

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

Шаги

  1. Установите плагин через менеджер плагинов DLE (архив с install.xml, engine/, devcraft/). В пакете должны быть devcraft/src/modules/RePost/Public/icon.png и engine/inc/repost.php.
  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.php → repostRunCron() в конце авто-cron DLE

Патчи подключают devcraft/src/modules/RePost/Controller/hooks.php и news_form.php (путь от корня сайта), с маркерами // DevCraft RePost: start … end.

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

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

devcraft/src/modules/RePost/
devcraft/src/modules/RePost/Controller/hooks.php
devcraft/src/modules/RePost/Controller/news_form.php
engine/inc/repost.php
devcraft/config/repost.json

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

На этой странице