- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/userfield/datamodifiers/element.php
- Класс: Bitrix\Crm\UserField\DataModifiers\Element
- Вызов: Element::setContacts
static function setContacts(array &$result, array $params, $userPermissions): void
{
if(in_array('CONTACT', $params['ENTITY_TYPE'], true))
{
$hasNameFormatter = method_exists('CCrmContact', 'PrepareFormattedName');
$result['ENTITY_TYPE'][] = 'contact';
$topIdList = CCrmContact::GetTopIDsInCategory(
0,
self::ELEMENTS_LIMIT,
'DESC',
$userPermissions
);
if(empty($topIdList))
{
$contacts = new CDBResult();
$contacts->InitFromArray([]);
}
else
{
$contacts = CCrmContact::GetListEx(
['ID' => 'DESC'],
['@ID' => $topIdList, 'CHECK_PERMISSIONS' => 'N'],
false,
false,
['ID', 'HONORIFIC', 'NAME', 'SECOND_NAME', 'LAST_NAME', 'FULL_NAME', 'COMPANY_TITLE', 'PHOTO']
);
}
while($contact = $contacts->Fetch())
{
$imageUrl = '';
if(isset($contact['PHOTO']) && $contact['PHOTO'] > 0)
{
$image = CFile::ResizeImageGet(
$contact['PHOTO'],
['width' => 25, 'height' => 25],
BX_RESIZE_IMAGE_EXACT
);
if(is_array($image) && isset($image['src']))
{
$imageUrl = $image['src'];
}
}
$contact['SID'] = ($result['PREFIX'] === 'Y' ? 'C_' . $contact['ID'] : $contact['ID']);
$isSelected = self::getIsSelectedValue($result, $params, $contact);
self::removeItemFromResultList($result, $params, $contact);
if($hasNameFormatter)
{
$title = CCrmContact::PrepareFormattedName(
[
'HONORIFIC' => ($contact['HONORIFIC'] ?? ''),
'NAME' => ($contact['NAME'] ?? ''),
'SECOND_NAME' => ($contact['SECOND_NAME'] ?? ''),
'LAST_NAME' => ($contact['LAST_NAME'] ?? '')
]
);
}
else
{
$title = ($contact['FULL_NAME'] ?? '');
}
$result['ELEMENT'][] = [
'title' => $title,
'desc' => (empty($contact['COMPANY_TITLE']) ? '' : $contact['COMPANY_TITLE']),
'id' => $contact['SID'],
'url' => CComponentEngine::MakePathFromTemplate(
COption::GetOptionString('crm', 'path_to_contact_show'),
['contact_id' => $contact['ID']]
),
'image' => $imageUrl,
'type' => 'contact',
'selected' => $isSelected
];
}
}
}