- Модуль: voximplant
- Путь к файлу: ~/bitrix/modules/voximplant/classes/general/vi_webdav_helper.php
- Класс: CVoxImplantWebDavHelper
- Вызов: CVoxImplantWebDavHelper::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(BitrixMainModuleManager::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/';
if ($deleteUrlTemplate !== '')
{
$deleteUrl = self::PrepareUrl($deleteUrlTemplate, $arElement);
}
else if (preg_match('//docs/shared//i', $showUrl))
{
$deleteUrl = '';
}
else
{
$deleteUrl = 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,
'NAME' => $arElement['NAME'],
'EDIT_URL' => $editUrl,
'VIEW_URL' => $viewUrl,
'DELETE_URL' => $deleteUrl,
'SHOW_URL' => $showUrl,
'SIZE' => $size
);
}