• Модуль: 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;
}