• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/classes/general/task.php
  • Класс: CTasks
  • Вызов: CTasks::UpdateForumTopicIndex
static function UpdateForumTopicIndex(
	$topicId,
	$entityType,
	$entityId,
	$feature,
	$operation,
	$path,
	$permissions,
	$siteId
)
{
	global $DB;

	if (!CModule::IncludeModule('forum'))
	{
		return;
	}

	$topicId = (int)$topicId;

	$forumTopicResult = $DB->Query("SELECT FORUM_ID FROM b_forum_topic WHERE ID = {$topicId}");
	if (!($forumTopic = $forumTopicResult->Fetch()))
	{
		return;
	}

	CSearch::ChangePermission('forum', $permissions, false, $forumTopic['FORUM_ID'], $topicId);

	$forumMessageResult = $DB->Query("SELECT ID FROM b_forum_message WHERE TOPIC_ID = {$topicId}");
	while ($message = $forumMessageResult->Fetch())
	{
		CSearch::ChangeSite('forum', [$siteId => $path], $message['ID']);
	}

	$params = [
		'feature_id' => "S{$entityType}_{$entityId}_{$feature}_{$operation}",
		'socnet_user' => $entityId,
	];

	CSearch::ChangeIndex(
		'forum',
		['PARAMS' => $params],
		false,
		$forumTopic['FORUM_ID'],
		$topicId
	);
}