- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_webdav_helper.php
- Класс: \CCrmWebDavHelper
- Вызов: CCrmWebDavHelper::GetElementInfo
static function GetElementInfo($elementID, $checkPermissions = true)
{
if (!(IsModuleInstalled('iblock')
&& IsModuleInstalled('webdav')
&& CModule::IncludeModule('iblock')
&& CModule::IncludeModule('webdav')))
{
return array();
}
if($checkPermissions && !self::CheckElementReadPermission($elementID))
{
return array();
}
$arElement = self::GetElement($elementID);
if(!$arElement)
{
return array();
}
if(self::$URL_TEMPLATES === null && method_exists('CWebDavIblock', 'GetULRsFromIBlockID'))
{
self::$URL_TEMPLATES = CWebDavIblock::GetULRsFromIBlockID($arElement['IBLOCK_ID']);
}
$showUrlTemplate = '';
$viewUrlTemplate = '';
$editUrlTemplate = '';
$deleteUrlTemplate = '';
if(is_array(self::$URL_TEMPLATES) && !empty(self::$URL_TEMPLATES))
{
if(isset(self::$URL_TEMPLATES['view']))
{
$showUrlTemplate = self::$URL_TEMPLATES['view'];
}
if(isset(self::$URL_TEMPLATES['history_get']))
{
$viewUrlTemplate = self::$URL_TEMPLATES['history_get'];
}
if(isset(self::$URL_TEMPLATES['edit']))
{
$editUrlTemplate = self::$URL_TEMPLATES['edit'];
}
if(isset(self::$URL_TEMPLATES['delete_dropped']))
{
$deleteUrlTemplate = self::$URL_TEMPLATES['delete_dropped'];
}
}
if($showUrlTemplate === '')
{
$showUrlTemplate = CWebDavIblock::LibOptions('lib_paths', true, $arElement['IBLOCK_ID']);
if(!is_string($showUrlTemplate))
{
$showUrlTemplate = '';
}
}
if($showUrlTemplate === '')
{
//HACK: Build default paths.
if(\Bitrix\Main\ModuleManager::isModuleInstalled('bitrix24'))
{
$showUrlTemplate = '/docs/element/view/#ELEMENT_ID#/';
$viewUrlTemplate = '/docs/element/historyget/#ELEMENT_ID#/#ELEMENT_NAME#';
$editUrlTemplate = '/docs/element/edit/edit/#ELEMENT_ID#/';
}
else
{
$showUrlTemplate = SITE_DIR.'docs/shared/element/view/#ELEMENT_ID#/';
$viewUrlTemplate = SITE_DIR.'docs/shared/element/historyget/#ELEMENT_ID#/#ELEMENT_NAME#';
$editUrlTemplate = SITE_DIR.'docs/shared/element/edit/edit/#ELEMENT_ID#/';
}
}
$showUrl = self::PrepareUrl($showUrlTemplate, $arElement);
$viewUrl = $viewUrlTemplate !== ''
? self::PrepareUrl($viewUrlTemplate, $arElement)
: str_replace('view', 'historyget', $showUrl);
$editUrl = $editUrlTemplate !== ''
? self::PrepareUrl($editUrlTemplate, $arElement)
: str_replace('view', 'edit', $showUrl).'EDIT/';
$deleteUrl = $deleteUrlTemplate !== ''
? self::PrepareUrl($deleteUrlTemplate, $arElement)
: (preg_match('/\/docs\/shared\//i', $showUrl) ? '' : str_replace('view', 'edit', $showUrl).'DELETE_DROPPED/');
$size = '';
$dbSize = CIBlockElement::GetProperty($arElement['IBLOCK_ID'], $arElement['ID'], array(), array('CODE' => 'WEBDAV_SIZE'));
if ($dbSize && $arSize=$dbSize->Fetch())
{
$size = CFile::FormatSize($arSize['VALUE']);
}
return array(
'ID' => $elementID,
'FILE_ID' => $arElement['PROPERTY_FILE_VALUE'],
'NAME' => $arElement['NAME'],
'EDIT_URL' => CHTTP::urlAddParams($editUrl, array('ncc' => '1')),
'VIEW_URL' => CHTTP::urlAddParams($viewUrl, array('ncc' => '1')),
'DELETE_URL' => CHTTP::urlAddParams($deleteUrl, array('ncc' => '1')),
'SHOW_URL' => CHTTP::urlAddParams($showUrl, array('ncc' => '1')),
'SIZE' => $size
);
}