- Модуль: landing
- Путь к файлу: ~/bitrix/modules/landing/lib/note/source/livefeed.php
- Класс: BitrixLandingNoteSourceLiveFeed
- Вызов: LiveFeed::getData
static function getData(int $sourceId): ?array
{
if (
BitrixMainLoader::includeModule('socialnetwork') &&
BitrixMainLoader::includeModule('forum')
)
{
$provider = SonetLivefeedProvider::init([
'ENTITY_TYPE' => 'FORUM_POST',
'ENTITY_ID' => $sourceId,
'CLONE_DISK_OBJECTS' => false
]);
if (!$provider || !$provider->getSourceTitle())
{
return null;
}
$res = MessageTable::getList([
'select' => [
'POST_MESSAGE',
'TOPIC_TITLE' => 'TOPIC.TITLE'
],
'filter' => [
'ID' => $sourceId,
'=APPROVED' => 'Y'
],
'limit' => 1
]);
if ($comment = $res->fetch())
{
$title = $provider->getSourceTitle();
$title = preg_replace('/[[^]]+]/is', '', $title);
$params = [];
$blocks = [[
'type' => 'header',
'content' => $title
]];
if (BitrixMainLoader::includeModule('disk'))
{
$params = [
'files' => self::getDiskFiles(
$sourceId,
BitrixDiskUfForumMessageConnector::class,
'forum'
)
];
}
$blocks = array_merge(
$blocks,
Parser::textToBlocks($comment['POST_MESSAGE'], $params)
);
return [
'TITLE' => truncateText($title, self::TITLE_LENGTH),
'BLOCKS' => $blocks
];
}
}
return null;
}