• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/classes/general/task.php
  • Класс: CTasks
  • Вызов: CTasks::OnSearchReindex
static function OnSearchReindex($nextStep = [], $callback = null, $callback_method = '')
{
	$arResult = [];
	$order = ['ID' => 'ASC'];
	$filter = [];

	if (
		isset($nextStep['MODULE'], $nextStep['ID'])
		&& $nextStep['MODULE'] === 'tasks'
		&& $nextStep['ID'] > 0
	)
	{
		$filter['>ID'] = (int)$nextStep['ID'];
	}
	else
	{
		$filter['>ID'] = 0;
	}

	$tasksResult = self::GetList($order, $filter);
	while ($task = $tasksResult->Fetch())
	{
		$taskId = $task['ID'];

		$members = self::getMembers($taskId);
		$task['ACCOMPLICES'] = $members[MemberTable::MEMBER_TYPE_ACCOMPLICE];
		$task['AUDITORS'] = $members[MemberTable::MEMBER_TYPE_AUDITOR];

		$path = self::getPathToTask($task);
		$permissions = self::__GetSearchPermissions($task);

		$result = [
			'ID' => $taskId,
			'TITLE' => $task['TITLE'],
			'BODY' => (strip_tags($task['DESCRIPTION']) ?: $task['TITLE']),
			'LAST_MODIFIED' => ($task['CHANGED_DATE'] ?: $task['CREATED_DATE']),
			'TAGS' => implode(',', self::getTags($taskId)),
			'URL' => $path,
			'SITE_ID' => $task['SITE_ID'],
			'PERMISSIONS' => $permissions,
		];

		if ($callback)
		{
			if (!call_user_func([$callback, $callback_method], $result))
			{
				return $result['ID'];
			}
		}
		else
		{
			$arResult[] = $result;
		}

		self::UpdateForumTopicIndex(
			$task['FORUM_TOPIC_ID'],
			'U',
			$task['RESPONSIBLE_ID'],
			'tasks',
			'view_all',
			$path,
			$permissions,
			$task['SITE_ID']
		);
	}

	if ($callback)
	{
		return false;
	}

	return $arResult;
}