• Модуль: landing
  • Путь к файлу: ~/bitrix/modules/landing/lib/assets/preprocessing/crmcontacts.php
  • Класс: BitrixLandingAssetsPreProcessingCrmContacts
  • Вызов: CrmContacts::getContacts
static function getContacts(): array
{
	if (LandingManager::isB24())
	{
		if (
			!Loader::includeModule('crm')
			|| !Loader::includeModule('salescenter')
		)
		{
			self::$status = self::STATUS_CRM_NO_SALESCENTER;
			return self::DEFAULT_CONTACTS;
		}

		if (EntityLink::getDefaultMyCompanyId() === 0)
		{
			self::$status = self::STATUS_CRM_DEFAULT;
			return self::DEFAULT_CONTACTS;
		}

		$contacts[self::COMPANY_KEY] = CrmManager::getPublishedCompanyName() ?: self::DEFAULT_COMPANY;

		// get just first phone or email
		$phones = CrmManager::getPublishedCompanyPhone();
		$contacts[self::PHONES_KEY] = empty($phones) || $phones['ID'] == 0
			? self::DEFAULT_PHONES
			: [$phones['VALUE']];

		$emails = CrmManager::getPublishedCompanyEmail();
		$contacts[self::EMAILS_KEY] = empty($emails)
			? self::DEFAULT_EMAILS
			: [$emails['VALUE']];

		self::$status = self::STATUS_CRM_OK;
		return $contacts;
	}

	if (LandingManager::isB24Connector())
	{
		// todo: now not work in BUS, try later
		// $client = ApClient::init();
		// if ($client)
		// {
		// 	$resContacts = $client->call('salescenter.myMethod');
		// 	if (empty($resContacts['error']))
		// 	{
		// 		// todo: check empty contacts here?
		// 		if (isset($resContacts['result']) && is_array($resContacts['result']))
		// 		{
		// 			self::$status = self::STATUS_CONNECTOR_OK;
		// 			return $resContacts['result'];
		// 		}
		// 	}
		// 	elseif ($resContacts['error'] === 'ERROR_METHOD_NOT_FOUND')
		// 	{
		// 		self::$status = self::STATUS_CONNECTOR_OLD_CRM;
		// 		return self::DEFAULT_CONTACTS;
		// 	}
		// }
		// self::$status = self::STATUS_CONNECTOR_DEFAULT;
		// return self::DEFAULT_CONTACTS;
	}

	// default
	self::$status = self::STATUS_SMN_DEFAULT;
	return self::DEFAULT_CONTACTS;
}