- Модуль: mail
- Путь к файлу: ~/bitrix/modules/mail/lib/helper/recipient.php
- Класс: BitrixMailHelperRecipient
- Вызов: Recipient::loadCrmMailContacts
static function loadCrmMailContacts($filter = [], $limit = 20)
{
global $APPLICATION;
$result = array();
if (MainLoader::includeModule('crm'))
{
$mailContacts = BitrixMainUserTable::getList(array(
'select' => array(
'ID',
'NAME',
'LAST_NAME',
'SECOND_NAME',
'EMAIL',
'PERSONAL_PHOTO',
),
'filter' => array_merge(
array(
'=ACTIVE' => 'Y',
'=EXTERNAL_AUTH_ID' => 'email',
),
$filter
),
'order' => array(
'LAST_NAME' => 'ASC',
),
'limit' => $limit,
));
$contactAvatars = array();
while ($mailContact = $mailContacts->fetch())
{
$email = $mailContact['EMAIL'];
if (empty($email))
{
continue;
}
$crmCommunications = CSocNetLogDestination::searchCrmEntities(array(
'SEARCH' => $email,
'ENTITIES' => array('CONTACT'),
));
foreach ($crmCommunications as $communication)
{
$email = $communication['email'];
if ($contactAvatars[$email] === null)
{
ob_start();
$APPLICATION->includeComponent('bitrix:mail.contact.avatar', '',
[
'mailContact' => array(
'FILE_ID' => $mailContact['PERSONAL_PHOTO'],
'name' => CUser::formatName(CSite::getNameFormat(), $mailContact),
'email' => $email,
),
]);
$contactAvatars[$email] = ob_get_clean();
$communication['iconCustom'] = $contactAvatars[$email];
}
$id = static::buildUniqueEmailCode($email);
$communication['id'] = $id;
$result[$id] = $communication;
}
}
}
return $result;
}