- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/search/contactsearchcontentbuilder.php
- Класс: Bitrix\Crm\Search\ContactSearchContentBuilder
- Вызов: ContactSearchContentBuilder::prepareSearchMap
protected function prepareSearchMap(array $fields, array $options = null)
{
$map = new SearchMap();
$entityID = isset($fields['ID']) ? (int)$fields['ID'] : 0;
if($entityID <= 0)
{
return $map;
}
$isShortIndex = ($options['isShortIndex'] ?? false);
if(!$isShortIndex)
{
$map->add($entityID);
}
$lastName = isset($fields['LAST_NAME']) ? $fields['LAST_NAME'] : '';
if($lastName !== '')
{
$map->addText($lastName);
$map->addText(SearchEnvironment::prepareSearchContent($lastName));
$customerNumber = $this->parseCustomerNumber($lastName, \CCrmContact::GetDefaultTitleTemplate());
if($customerNumber != $entityID)
{
$map->addTextFragments($customerNumber);
}
}
$map->addField($fields, 'NAME');
if(!$isShortIndex)
{
$map->addField($fields, 'SECOND_NAME');
}
if(isset($fields['ASSIGNED_BY_ID']) && !$isShortIndex)
{
$map->addUserByID($fields['ASSIGNED_BY_ID']);
}
$multiFields = $this->getEntityMultiFields($entityID);
if(isset($multiFields[\CCrmFieldMulti::PHONE]))
{
foreach($multiFields[\CCrmFieldMulti::PHONE] as $multiField)
{
if(isset($multiField['VALUE']))
{
$map->addPhone($multiField['VALUE']);
}
}
}
if(isset($multiFields[\CCrmFieldMulti::EMAIL]))
{
foreach($multiFields[\CCrmFieldMulti::EMAIL] as $multiField)
{
if(isset($multiField['VALUE']))
{
$map->addEmail($multiField['VALUE']);
}
}
}
if(isset($fields['TYPE_ID']) && !$isShortIndex)
{
$map->addStatus('CONTACT_TYPE', $fields['TYPE_ID']);
}
if(isset($fields['COMMENTS']) && !$isShortIndex)
{
$map->addHtml($fields['COMMENTS'], 1024);
}
//region Source
if(isset($fields['SOURCE_ID']) && !$isShortIndex)
{
$map->addStatus('SOURCE', $fields['SOURCE_ID']);
}
if(isset($fields['SOURCE_DESCRIPTION']) && !$isShortIndex)
{
$map->addText($fields['SOURCE_DESCRIPTION'], 1024);
}
//endregion
//region UserFields
if (!$isShortIndex)
{
foreach($this->getUserFields($entityID) as $userField)
{
$map->addUserField($userField);
}
}
//endregion
return $map;
}