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