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