• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/tracking/provider.php
  • Класс: Bitrix\Crm\Tracking\Provider
  • Вызов: Provider::getB24Sites
static function getB24Sites($isStore = null)
{
	if (!Loader::includeModule('landing'))
	{
		return [];
	}

	$filter = [
		'=ACTIVE' => 'Y',
	];
	if (is_bool($isStore))
	{
		$filter['=TYPE'] = $isStore ?  'STORE' : 'PAGE';
	}

	Landing\Rights::setGlobalOff();
	$list = Landing\Site::getList([
		'select' => [
			'ID', 'TITLE', 'TYPE', 'TPL_CODE', 'DOMAIN_NAME' => 'DOMAIN.DOMAIN',
			'DOMAIN_PROTOCOL' => 'DOMAIN.PROTOCOL'
		],
		'filter' => $filter
	])->fetchAll();
	Landing\Rights::setGlobalOn();

	$list = array_filter(
		$list,
		function ($item)
		{
			return !empty($item['DOMAIN_NAME']);
		}
	);
	sort($list);
	$list = array_map(
		function ($item)
		{
			$code = Channel\Base::Site24;
			if ($item['TYPE'] === 'STORE')
			{
				$code =  $item['TPL_CODE'] === 'store_v3'
					? $code = Channel\Base::CrmShop
					: $code = Channel\Base::Shop24
				;
			}

			$item['CODE'] = $code;
			return $item;
		},
		$list
	);

	$disabledList = array_column(Internals\SiteB24Table::getList()->fetchAll(), 'LANDING_SITE_ID');
	foreach ($list as $index => $site)
	{
		$list[$index]['EXCLUDED'] = in_array($site['ID'], $disabledList);
	}

	return $list;
}