• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/search/dynamictypesearchcontentbuilder.php
  • Класс: Bitrix\Crm\Search\DynamicTypeSearchContentBuilder
  • Вызов: DynamicTypeSearchContentBuilder::prepareSearchMap
protected function prepareSearchMap(array $fields, array $options = null): SearchMap
{
	$map = new SearchMap();

	$entityID = $fields['ID'] ?? 0;
	if ($entityID <= 0)
	{
		return $map;
	}

	$map->add($this->prepareTokenCompatible($entityID));

	if (isset($fields['TITLE']))
	{
		$map->addText($this->prepareTokenCompatible($fields['TITLE']));
	}

	if (isset($fields['ACCOUNT_NUMBER']))
	{
		$map->addText($this->prepareTokenCompatible($fields['ACCOUNT_NUMBER']));
	}

	foreach ($this->getFieldsWithUsers() as $fieldName)
	{
		if (isset($fields[$fieldName]) && $fields[$fieldName] > 0)
		{
			$map->addUserByID($fields[$fieldName]);
		}
	}

	if (isset($fields['ASSIGNED_BY_ID']))
	{
		$assigned = $fields['ASSIGNED_BY_ID'];
		if (is_array($assigned))
		{
			$map = $this->addMultipleUsersToSearchMap($assigned, $map);
		}
		else
		{
			if ($assigned > 0)
			{
				$map->addUserByID($assigned);
			}
		}
	}

	foreach($this->getUserFields($entityID) as $userField)
	{
		if (!empty($userField['VALUE']))
		{
			$userField['VALUE'] = $this->prepareTokenCompatible($userField['VALUE']);
		}
		$map->addUserField($userField);
	}

	return $map;
}