• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/internals/searchindex.php
  • Класс: BitrixTasksInternalsSearchIndex
  • Вызов: SearchIndex::buildTaskSearchIndex
static function buildTaskSearchIndex($task, array $fields = [])
{
	$searchIndex = '';

	if (empty($fields))
	{
		$fields = static::$fields;
	}
	else
	{
		$fields = array_intersect($fields, static::$fields);
		$fields = array_unique($fields);

		if (empty($fields))
		{
			return $searchIndex;
		}
	}

	$taskData = static::getTaskData($task, $fields);

	if (!is_array($taskData) || empty($taskData))
	{
		return $searchIndex;
	}

	$fieldValues = [];

	foreach ($fields as $field)
	{
		$fieldValue = static::getFieldValue($field, $taskData);
		$fieldValues = array_merge($fieldValues, $fieldValue);
	}

	if (!empty($fieldValues))
	{
		$searchIndex = implode(' ', $fieldValues);
		$searchIndex = array_unique(explode(' ', $searchIndex));
		$searchIndex = implode(' ', $searchIndex);

		$searchIndex = static::prepareSearchIndex($searchIndex);
	}

	return $searchIndex;
}