• Модуль: mobile
  • Путь к файлу: ~/bitrix/modules/mobile/lib/context.php
  • Класс: BitrixMobileContext
  • Вызов: Context::autodetectContext
static function autodetectContext()
{
	global $USER;

	if (!self::$defaultContext)
	{
		$siteId = SITE_ID;
		$siteDir = SITE_DIR;
		$isExtranetUser = false;

		if ($USER->isAuthorized())
		{
			$isExtranetModuleInstalled = BitrixMainLoader::includeModule('extranet');

			if ($isExtranetModuleInstalled)
			{
				$extranetSiteId = CExtranet::getExtranetSiteId();
				if (!$extranetSiteId)
				{
					$isExtranetModuleInstalled = false;
				}
			}
			$users = CUser::GetList(
				["last_name" => "asc", "name" => "asc"],
				'',
				[ 'ID' => $USER->GetID() ],
				[ 'SELECT' => [ 'UF_DEPARTMENT' ]]
			);
			$user = $users->fetch();
			$isExtranetUser = ($isExtranetModuleInstalled && (int)$user['UF_DEPARTMENT'][0] <= 0);

			if ($isExtranetUser)
			{
				$siteId = $extranetSiteId;
				$res = CSite::getById($extranetSiteId);
				if(
					($extranetSiteFields = $res->fetch())
					&& ($extranetSiteFields['ACTIVE'] !== 'N')
				)
				{
					$siteDir = $extranetSiteFields['DIR'];
				}
			}
		}

		$arModuleVersion = [ 'VERSION' => 'default' ];
		include($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/mobile/install/version.php');
		$moduleVersion = $arModuleVersion['VERSION'];
		if(array_key_exists('IS_WKWEBVIEW', $_COOKIE) && $_COOKIE['IS_WKWEBVIEW'] === "Y")
		{
			$moduleVersion .= '_wkwebview';
		}

		self::$defaultContext = [
			'extranet' => $isExtranetUser,
			'siteId' => $siteId,
			'siteDir' => $siteDir,
			'version' => $moduleVersion,
		];
	}

	return self::$defaultContext;
}