- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/integration/im/chat.php
- Класс: Bitrix\Crm\Integration\Im\Chat
- Вызов: Chat::getEntityCard
static function getEntityCard($entityType, $entityId, $entityData = null)
{
if (!\Bitrix\Main\Loader::includeModule('im'))
{
return null;
}
$entityTypeId = \CCrmOwnerType::ResolveID($entityType);
$additionalAllowedTypes = [\CCrmOwnerType::Contact, \CCrmOwnerType::Company];
$isEnabled = static::isEntitySupported($entityTypeId) || in_array($entityTypeId, $additionalAllowedTypes, true);
if (!$isEnabled)
{
return null;
}
if (!$entityData)
{
$entityData = self::getEntityData($entityType, $entityId, true);
}
if (!$entityData)
{
return null;
}
$attach = new \CIMMessageParamAttach();
$entityGrid = Array();
if ($entityType == \CCrmOwnerType::LeadName)
{
if (isset($entityData['TITLE']))
{
$attach->AddLink(Array(
'NAME' => $entityData['TITLE'],
'LINK' => \CCrmOwnerType::GetEntityShowPath(\CCrmOwnerType::ResolveID($entityType), $entityId, false)
));
}
if (!empty($entityData['FULL_NAME']) && mb_strpos($entityData['TITLE'], $entityData['FULL_NAME']) === false)
{
$entityGrid[] = Array('DISPLAY' => 'COLUMN', 'NAME' => Loc::getMessage('CRM_INTEGRATION_IM_CHAT_CARD_FULL_NAME'), 'VALUE' => $entityData['FULL_NAME']);
}
if (!empty($entityData['COMPANY_TITLE']))
{
$entityGrid[] = Array('DISPLAY' => 'COLUMN', 'NAME' => Loc::getMessage('CRM_INTEGRATION_IM_CHAT_CARD_COMPANY_TITLE'), 'VALUE' => $entityData['COMPANY_TITLE']);
}
if (!empty($entityData['POST']))
{
$entityGrid[] = Array('DISPLAY' => 'COLUMN', 'NAME' => Loc::getMessage('CRM_INTEGRATION_IM_CHAT_CARD_POST'), 'VALUE' => $entityData['POST']);
}
}
else if ($entityType == \CCrmOwnerType::ContactName)
{
if (isset($entityData['FULL_NAME']))
{
$attach->AddLink(Array(
'NAME' => $entityData['FULL_NAME'],
'LINK' => \CCrmOwnerType::GetEntityShowPath(\CCrmOwnerType::ResolveID($entityType), $entityId, false)
));
}
if (!empty($entityData['POST']))
{
$entityGrid[] = Array('DISPLAY' => 'COLUMN', 'NAME' => Loc::getMessage('CRM_INTEGRATION_IM_CHAT_CARD_POST'), 'VALUE' => $entityData['POST']);
}
}
else
{
if (isset($entityData['TITLE']))
{
$attach->AddLink(Array(
'NAME' => $entityData['TITLE'],
'LINK' => \CCrmOwnerType::GetEntityShowPath(\CCrmOwnerType::ResolveID($entityType), $entityId, false)
));
}
}
if (
isset($entityData['HAS_PHONE'])
&& $entityData['HAS_PHONE'] === 'Y'
&& isset($entityData['FM']['PHONE'])
)
{
$fields = [];
foreach ($entityData['FM']['PHONE'] as $phones)
{
foreach ($phones as $phone)
{
$fields[] = $phone;
}
}
$entityGrid[] = Array('DISPLAY' => 'LINE', 'NAME' => Loc::getMessage('CRM_INTEGRATION_IM_CHAT_CARD_PHONE'), 'VALUE' => implode('[br]', $fields), 'HEIGHT' => '20');
}
if (
isset($entityData['HAS_EMAIL'])
&& $entityData['HAS_EMAIL'] === 'Y'
&& $entityData['FM']['EMAIL']
)
{
$fields = [];
foreach ($entityData['FM']['EMAIL'] as $emails)
{
foreach ($emails as $email)
{
$fields[] = $email;
}
}
$entityGrid[] = Array('DISPLAY' => 'LINE', 'NAME' => Loc::getMessage('CRM_INTEGRATION_IM_CHAT_CARD_EMAIL'), 'VALUE' => implode('[br]', $fields), 'HEIGHT' => '20');
}
$attach->AddGrid($entityGrid);
return $attach;
}