- Модуль: forum
- Путь к файлу: ~/bitrix/modules/forum/lib/forum.php
- Класс: BitrixForumForum
- Вызов: Forum::getMainData
static function getMainData(int $forumId, ?string $siteId = null): ?array
{
$cacheKey = implode('_', ([$forumId] + ($siteId === null ? [] : [$siteId])));
if (!array_key_exists($cacheKey, self::$cache))
{
$q = ForumTable::query()
->setSelect([
'ID', 'FORUM_GROUP_ID', 'NAME', 'DESCRIPTION', 'SORT', 'ACTIVE',
'ALLOW_HTML', 'ALLOW_ANCHOR', 'ALLOW_BIU', 'ALLOW_IMG', 'ALLOW_VIDEO',
'ALLOW_LIST', 'ALLOW_QUOTE', 'ALLOW_CODE', 'ALLOW_FONT', 'ALLOW_SMILES',
'ALLOW_TABLE', 'ALLOW_ALIGN', 'ALLOW_UPLOAD', 'ALLOW_UPLOAD_EXT',
'ALLOW_MOVE_TOPIC', 'ALLOW_TOPIC_TITLED', 'ALLOW_NL2BR', 'ALLOW_SIGNATURE',
'ASK_GUEST_EMAIL', 'USE_CAPTCHA' ,'INDEXATION', 'DEDUPLICATION',
'MODERATION', 'ORDER_BY', 'ORDER_DIRECTION',
'EVENT1', 'EVENT2', 'EVENT3', 'XML_ID'])
->where('ID', $forumId)
->setCacheTtl(84600);
if ($siteId !== null)
{
$q->registerRuntimeField(
'',
new ReferenceField('SITE',
ForumSiteTable::getEntity(),
[
'=ref.FORUM_ID' => 'this.ID',
'=ref.SITE_ID' => new SqlExpression('?s', $siteId)
]
)
)
->addSelect('SITE.PATH2FORUM_MESSAGE', 'PATH2FORUM_MESSAGE');
}
self::$cache[$cacheKey] = $q->fetch() ?: null;
}
self::bindOldKernelEvents();
return self::$cache[$cacheKey];
}