- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/sitebutton/channel/channelopenline.php
- Класс: Bitrix\Crm\SiteButton\Channel\ChannelOpenLine
- Вызов: ChannelOpenLine::getWidgetsById
static function getWidgetsById($lineId, $removeCopyright, $lang, array $config = []): array
{
if (!self::canUse())
{
return [];
}
$excluded = $config['excluded'] ?? [];
$widgets = [];
$sort = 400;
$type = self::getType();
$connectors = self::getConnectors($lineId);
foreach ($connectors as $connector)
{
if (in_array($connector['id'], $excluded))
{
continue;
}
$widget = [
'id' => $type . '_' . $connector['code'],
'title' => $connector['title'],
'script' => '',
'show' => null,
'hide' => null,
'tracking' => [
'detecting' => !in_array($connector['code'], self::$trackingDetectingDisabled, true),
'channel' => [
'code' => Tracking\Channel\Base::Imol,
'value' => $connector['code'],
]
]
];
if ($connector['code'] === ImConnector\Library::ID_LIVE_CHAT_CONNECTOR)
{
$widgetParams = self::getLiveChatWidget($lineId, $removeCopyright, $lang);
if (!$widgetParams)
{
continue;
}
$widget = array_merge($widget, $widgetParams);
$widget['classList'] = ['b24-widget-button-' . $widget['id']];
}
else
{
$widget['classList'] = [
'ui-icon',
'ui-icon-service-' . $connector['icon'],
'connector-icon-45'
];
$widget['sort'] = $sort;
$sort += 100;
$widget['show'] = [
'url' => $connector['url']
];
}
if ($connector['code'] === ImConnector\Library::ID_NOTIFICATIONS_CONNECTOR)
{
$widgetParams = self::getNotificationsWidget($lang);
if (!$widgetParams)
{
continue;
}
$widget = array_merge($widget, $widgetParams);
}
elseif ($connector['code'] === ImConnector\Library::ID_EDNA_WHATSAPP_CONNECTOR)
{
$widgetParams = self::getWhatsAppEdnaWidget((int)$lineId, $lang);
if (!$widgetParams)
{
continue;
}
$widget = array_merge($widget, $widgetParams);
}
$widgets[] = $widget;
}
return $widgets;
}