Sms::getConfig

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. Sms
  4. getConfig
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/controller/activity/sms.php
  • Класс: Bitrix\Crm\Controller\Activity\Sms
  • Вызов: Sms::getConfig
private function getConfig(int $entityTypeId, int $entityId): array
{
	$config = SmsManager::getEditorConfig($entityTypeId, $entityId);

	if (empty($config['communications']))
	{
		$factory = Container::getInstance()->getFactory($entityTypeId);
		$item = $factory->getItem($entityId);

		if ($item && $item->hasField(Item::FIELD_NAME_CONTACT_BINDINGS))
		{
			$contacts = $item->getContacts();
			foreach ($contacts as $contact)
			{
				$config['communications'][] = [
					'entityId' => $contact->getId(),
					'entityTypeId' => \CCrmOwnerType::Contact,
					'caption' => $contact->getFormattedName(),
				];
			}

			if ($item->hasField(Item::FIELD_NAME_COMPANY))
			{
				$company = $item->getCompany();
				if ($company)
				{
					$config['communications'][] = [
						'entityId' => $company->getId(),
						'entityTypeId' => \CCrmOwnerType::Company,
						'caption' => $company->getTitle(),
					];
				}
			}
		}
	}

	$isMessageServiceInstalled = ModuleManager::isModuleInstalled('messageservice');

	foreach ($config['senders'] as &$sender)
	{
		$isTemplatesBased = ($sender['isTemplatesBased'] ?? false);
		$canUse = ($sender['canUse'] ?? false);
		$senderId = $sender['id'];

		if (
			$isTemplatesBased
			&& $canUse
			&& !empty($config['defaults'])
			&& $config['defaults']['senderId'] === $senderId
		)
		{
			if ($isMessageServiceInstalled)
			{
				$senderEntity = \Bitrix\MessageService\Sender\SmsManager::getSenderById($senderId);
				if ($senderEntity)
				{
					$sender['templates'] = $senderEntity->getTemplatesList();
				}
			}
			else
			{
				$config['defaults'] = null;
			}
		}
	}
	unset($sender);

	return $config;
}

Добавить комментарий