• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/ads/adsform.php
  • Класс: Bitrix\Crm\Ads\AdsForm
  • Вызов: AdsForm::getProviders
static function getProviders(array $types = null): array
{
	if (!self::canUse())
	{
		return [];
	}

	$providerIcons = static::getAdsIconMap();
	$providers = static::getServiceProviders($types);

	foreach ($providers as $type => &$provider)
	{
		if ($icon = $providerIcons[$type])
		{
			$provider['ICON'] = $icon;
		}

		if ($defaultMap = FieldMapper::getDefaultMap($type))
		{
			$provider['DEFAULT_MAPPING'] = $defaultMap;
		}

		$service = static::getService();
		/**@var LeadAds\Account */
		$account = $service->getAccount($type);

		$provider['URL_INFO'] = $account::getUrlInfo();
		$provider['URL_ACCOUNT_LIST'] = $account::getUrlAccountList();

		/**@var LeadAds\Form */
		$form = $service->getForm($type);
		/**@var AuthAdapter|null*/
		$groupAuthAdapter = $form->getGroupAuthAdapter();

		$provider['URL_FORM_LIST'] = $form::getUrlFormList();
		$provider['IS_SUPPORT_ACCOUNT'] = $form::isSupportAccount();
		$provider['GROUP'] = [
			'IS_AUTH_USED' => $form::isGroupAuthUsed(),
			'HAS_AUTH' => $groupAuthAdapter && $groupAuthAdapter->hasAuth(),
			'AUTH_URL' => $groupAuthAdapter ? $groupAuthAdapter->getAuthUrl() : null,
			'GROUP_ID' => []
		];

		if ($provider['GROUP']['HAS_AUTH'])
		{
			$provider['GROUP']['GROUP_ID'] = current($form->getRegisteredGroups());
		}

	}

	return $providers;
}