Плагин ТелеПост генерирует событие onTelepostArticleBeforeSave перед сохранением материала Joomla.
Событие вызывается один раз для каждого успешно обработанного поста и позволяет изменить данные статьи до их сохранения в базе данных.
Событие реализовано через PSR-14 и передаёт объект Event со следующими аргументами:
#__content, а также ключам images, urls, tags, com_fields.channel_post, полученный от Telegram API без изменений.Пример обработчика события:
use Joomla\Event\Event;
public function onTelepostArticleBeforeSave(Event $event): void
{
$data = $event->getArgument('data');
$post = $event->getArgument('post');
// Пример: изменить заголовок
$data->title = '[Telegram] ' . $data->title;
}
Примечание: поле introtext может содержать HTML-разметку (абзацы, ссылки), если в настройках плагина включено автоформатирование.
В основной поставке плагина доступен хелпер Joomla\Plugin\System\Telepost\Helper\TelepostHelper, предназначенный для безопасного скачивания файлов из Telegram.
Хелпер автоматически:
Пример использования в плагине-парсере:
use Joomla\Plugin\System\Telepost\Helper\TelepostHelper;
// Получение параметров основного плагина
$telepostParams = ...;
$botToken = $telepostParams->get('bot_token');
$imgPath = $telepostParams->get('img_path');
// Скачивание файла
$filePath = TelepostHelper::downloadTelegramFile($fileId, $botToken, $imgPath);
Для упрощения разработки собственных парсеров доступен плагин-пример, демонстрирующий:
Плагин-пример доступен в репозитории проекта на GitHub.