public 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, 'NAME' => $arElement['NAME'], 'EDIT_URL' => $editUrl, 'VIEW_URL' => $viewUrl, 'DELETE_URL' => $deleteUrl, 'SHOW_URL' => $showUrl, 'SIZE' => $size); }