- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_webdav_helper.php
- Класс: \CCrmWebDavHelper
- Вызов: CCrmWebDavHelper::PrepareUrl
static function PrepareUrl($template, &$arElement)
{
if (!(IsModuleInstalled('iblock')
&& CModule::IncludeModule('iblock')))
{
return '';
}
$template = strval($template);
if($template === '' || !is_array($arElement))
{
return '';
}
$elementID = isset($arElement['ID']) ? intval($arElement['ID']) : 0;
$elementName = isset($arElement['NAME']) ? $arElement['NAME'] : '';
$authorID = isset($arElement['CREATED_BY']) ? intval($arElement['CREATED_BY']) : 0;
$navChainKey = $arElement['IBLOCK_ID'].'_'.$arElement['IBLOCK_SECTION_ID'];
if(is_array(self::$IBLOCK_SECTION_NAV_CHAINS) && isset(self::$IBLOCK_SECTION_NAV_CHAINS[$navChainKey]))
{
$arSection = self::$IBLOCK_SECTION_NAV_CHAINS[$navChainKey];
}
else
{
if(self::$IBLOCK_SECTION_NAV_CHAINS === null)
{
self::$IBLOCK_SECTION_NAV_CHAINS = array();
}
$dbNav = CIBlockSection::GetNavChain($arElement['IBLOCK_ID'], $arElement['IBLOCK_SECTION_ID']);
$arSection = self::$IBLOCK_SECTION_NAV_CHAINS[$navChainKey] = is_object($dbNav) ? $dbNav->Fetch() : null;
}
$socnetGroupID = is_array($arSection) && isset($arSection['SOCNET_GROUP_ID']) ? intval($arSection['SOCNET_GROUP_ID']) : 0;
$url = $template;
$url = str_replace(
array(
'#ELEMENT_ID#',
'#element_id#',
'#ID#',
'#id#'
),
$elementID,
$url
);
$url = str_replace(
array(
'#ELEMENT_NAME#',
'#element_name#',
'#NAME#',
'#name#'
),
$elementName,
$url
);
$url = str_replace(
array(
'#SOCNET_USER_ID#',
'#socnet_user_id#',
'#USER_ID#',
'#user_id#'
),
$authorID,
$url
);
$url = str_replace(
array(
'#SOCNET_GROUP_ID#',
'#socnet_group_id#',
'#GROUP_ID#',
'#group_id#',
),
$socnetGroupID,
$url
);
$url = str_replace(
array(
'#SOCNET_OBJECT#',
'#socnet_object#'
),
$socnetGroupID > 0 ? 'group' : 'user',
$url
);
$url = str_replace(
array(
'#SOCNET_OBJECT_ID#',
'#socnet_object_id#'
),
$socnetGroupID > 0 ? $socnetGroupID : $authorID,
$url
);
return str_replace(array("///","//"),"/", $url);
}