• Модуль: 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];
}