• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/log_tools.php
  • Класс: CSocNetLogTools
  • Вызов: CSocNetLogTools::ProcessPath
static function ProcessPath($arUrl, $user_id, $explicit_site_id = false)
{
	static $arIntranetUsers, $arSiteData, $extranet_site_id, $intranet_site_id;

	if (!is_array($arUrl))
	{
		$arUrl = array($arUrl);
	}

	if (
		CModule::IncludeModule("extranet")
		&& !$arIntranetUsers
	)
	{
		$extranet_site_id = CExtranet::GetExtranetSiteID();
		$intranet_site_id = CSite::GetDefSite();
		$arIntranetUsers = CExtranet::GetIntranetUsers();
	}

	if (!$arSiteData)
	{
		$arSiteData = self::GetSiteData();
	}

	$user_site_id = (
		ModuleManager::isModuleInstalled('extranet')
			? (
				(
					!in_array($user_id, $arIntranetUsers)
					&& $extranet_site_id
				)
					? $extranet_site_id // extranet user
					: (
						$explicit_site_id
						&& $explicit_site_id != $extranet_site_id
							? $explicit_site_id
							: $intranet_site_id
					)
			)
			: ($explicit_site_id ? $explicit_site_id : SITE_ID)
	);

	$server_name = (CMain::IsHTTPS() ? "https" : "http")
		. "://" . ($arSiteData[$user_site_id]["SERVER_NAME"] ?? '')
	;

	$arUrl = str_replace(
		array("#SERVER_NAME#", "#GROUPS_PATH#", "#USER_PATH#"),
		array(
			$server_name,
			$arSiteData[$user_site_id]["GROUPS_PATH"] ?? '',
			$arSiteData[$user_site_id]["USER_PATH"] ?? ''
		),
		$arUrl
	);

	return array(
		"SERVER_NAME" => $server_name,
		"URLS" => $arUrl,
		"DOMAIN" => (count($arSiteData) > 1 ? $arSiteData[$user_site_id]["SERVER_NAME"] ?? null : false)
	);
}