- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/lib/item/workgroup.php
- Класс: BitrixSocialnetworkItemWorkgroup
- Вызов: Workgroup::getGroupUrlData
public function getGroupUrlData($params = array())
{
static $cache = array();
$groupFields = $this->getFields();
$userId = (int)($params['USER_ID'] ?? 0);
if (
!empty($cache)
&& !empty($cache[$groupFields["ID"]])
)
{
$groupUrlTemplate = $cache[$groupFields['ID']]['URL_TEMPLATE'];
$groupSiteId = $cache[$groupFields['ID']]['SITE_ID'];
}
else
{
$groupSiteId = CSocNetGroup::getDefaultSiteId($groupFields["ID"], $groupFields["SITE_ID"]);
$workgroupsPage = Option::get("socialnetwork", "workgroups_page", "/workgroups/", SITE_ID);
$groupUrlTemplate = HelperPath::get('group_path_template');
$groupUrlTemplate = "#GROUPS_PATH#".mb_substr($groupUrlTemplate, mb_strlen($workgroupsPage), mb_strlen($groupUrlTemplate) - mb_strlen($workgroupsPage));
$cache[$groupFields["ID"]] = array(
'URL_TEMPLATE' => $groupUrlTemplate ,
'SITE_ID' => $groupSiteId
);
}
$groupUrl = str_replace(array("#group_id#", "#GROUP_ID#"), $groupFields["ID"], $groupUrlTemplate);
$serverName = $domainName = '';
if ($userId > 0)
{
$tmp = CSocNetLogTools::processPath(
[
'GROUP_URL' => $groupUrl,
],
$userId,
$groupSiteId
);
$groupUrl = $tmp["URLS"]["GROUP_URL"];
$serverName = (mb_strpos($groupUrl, "http://") === 0 || mb_strpos($groupUrl, "https://") === 0 ? "" : $tmp["SERVER_NAME"]);
$domainName = (mb_strpos($groupUrl, "http://") === 0 || mb_strpos($groupUrl, "https://") === 0 ? "" : (isset($tmp["DOMAIN"]) && !empty($tmp["DOMAIN"]) ? "//".$tmp["DOMAIN"] : ""));
}
return [
'URL' => $groupUrl,
'SERVER_NAME' => $serverName,
'DOMAIN' => $domainName
];
}