- Модуль: 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)
);
}