- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/classes/general/im_event.php
- Класс: CIMEvent
- Вызов: CIMEvent::GetMessageRatingEntityURL
static function GetMessageRatingEntityURL($url, $user_id = false, $arSites = false, $intranet_site_id = false, $extranet_site_id = false)
{
static $arSiteData = false;
if (
!$arSiteData
&& IsModuleInstalled('intranet')
&& CModule::IncludeModule('socialnetwork')
)
{
$arSiteData = CSocNetLogTools::GetSiteData();
}
if (
$arSiteData
&& count($arSiteData) > 1
)
{
foreach($arSiteData as $siteId => $arUrl)
{
$url = str_replace($arUrl["USER_PATH"], "#USER_PATH#", $url);
}
$arTmp = CSocNetLogTools::ProcessPath(
[
"URL" => $url
],
$user_id
);
$url = $arTmp["URLS"]["URL"];
$url = (
mb_strpos($url, "http://") === 0
|| mb_strpos($url, "https://") === 0
? ""
: (
isset($arTmp["SERVER_NAME"])
&& !empty($arTmp["SERVER_NAME"])
? $arTmp["SERVER_NAME"]
: ""
)
).$arTmp["URLS"]["URL"];
}
else
{
if (
is_array($arSites)
&& intval($user_id) > 0
&& $extranet_site_id <> ''
&& $intranet_site_id <> ''
)
{
$bExtranetUser = false;
if ($arSites[$extranet_site_id])
{
$bExtranetUser = true;
$rsUser = CUser::GetByID(intval($user_id));
if ($arUser = $rsUser->Fetch())
{
if (intval($arUser["UF_DEPARTMENT"][0]) > 0)
{
$bExtranetUser = false;
}
}
}
if ($bExtranetUser)
{
$link = $url;
if (mb_substr($link, 0, mb_strlen($arSites[$extranet_site_id]['DIR'])) == $arSites[$extranet_site_id]['DIR'])
{
$link = mb_substr($link, mb_strlen($arSites[$extranet_site_id]['DIR']));
}
$SiteServerName = $arSites[$extranet_site_id]['SERVER_NAME'].$arSites[$extranet_site_id]['DIR'].ltrim($link, "/");
}
else
{
$link = $url;
if (mb_substr($link, 0, mb_strlen($arSites[$intranet_site_id]['DIR'])) == $arSites[$intranet_site_id]['DIR'])
{
$link = mb_substr($link, mb_strlen($arSites[$intranet_site_id]['DIR']));
}
$SiteServerName = $arSites[$intranet_site_id]['SERVER_NAME'].$arSites[$intranet_site_id]['DIR'].ltrim($link, "/");
}
$url = (CMain::IsHTTPS() ? "https" : "http")."://".$SiteServerName;
}
else
{
$SiteServerName = (defined('SITE_SERVER_NAME') && SITE_SERVER_NAME <> '' ? SITE_SERVER_NAME : COption::GetOptionString("main", "server_name", $_SERVER['SERVER_NAME']));
if ($SiteServerName <> '')
{
$url = (CMain::IsHTTPS() ? "https" : "http")."://".$SiteServerName.$url;
}
}
}
return $url;
}