/** * @param $file * @return bool|string */ public function getPublicLink(array $file) { /** @var \CWebDavIblock $webdav */ $webdav = $this->init()->getWebDav(); $hash = CWebDavExtLinks::getHashLink(array('IBLOCK_TYPE' => $webdav->IBLOCK_TYPE, 'IBLOCK_ID' => $file['extra']['iblockId'], 'ROOT_SECTION_ID' => $file['extra']['rootSectionId']), array('PASSWORD' => '', 'URL' => $file['path'], 'BASE_URL' => $webdav->base_url, 'SINGLE_SESSION' => false, 'LINK_TYPE' => CWebDavExtLinks::LINK_TYPE_MANUAL, 'VERSION_ID' => null, 'FILE_ID' => null, 'ELEMENT_ID' => $file['extra']['id']), null); return $hash; }
if(!empty($_POST['checkViewByGoogle'])) { $APPLICATION->RestartBuffer(); echo json_encode(array( 'viewByGoogle' => CWebDavExtLinks::getDownloadCountForLink($_POST['extLink']) > 0, )); die; } $hash = CWebDavExtLinks::getHashLink(array( 'IBLOCK_TYPE' => $ob->IBLOCK_TYPE, 'IBLOCK_ID' => $ob->IBLOCK_ID, 'ROOT_SECTION_ID' => $ob->arRootSection['ID'] ), array( 'PASSWORD' => '', 'LIFETIME_NUMBER' => CWebDavExtLinks::LIFETIME_TYPE_AUTO, 'LIFETIME_TYPE' => 'minute', 'URL' => $ob->_path, 'BASE_URL' => $ob->base_url, 'SINGLE_SESSION' => false, 'LINK_TYPE' => CWebDavExtLinks::LINK_TYPE_AUTO, ), null); if(!empty($_POST['json'])) { $APPLICATION->RestartBuffer(); echo json_encode(array( 'file' => $APPLICATION->convertCharset($hash, LANG_CHARSET, 'UTF-8'), 'viewerUrl' => $APPLICATION->convertCharset(CWebDavExtLinks::$urlGoogleViewer . $hash . '&embedded=true', LANG_CHARSET, 'UTF-8'), )); die;
} elseif (!empty($_REQUEST['showInViewer'])) { CUtil::JSPostUnescape(); CWebDavExtLinks::CheckSessID(); //alert to check_permissions $wdElement = $ob->GetObject(array('check_permissions' => false), false); //todo hack by load from url with historyget (example) if ($wdElement['not_found'] && $wdElement['basename'] && intval($wdElement['basename']) == $wdElement['basename']) { $wdElement = $ob->GetObject(array('check_permissions' => false, 'element_id' => $wdElement['basename']), false); } if (!$ob->CheckWebRights('', array('action' => 'read', 'arElement' => $wdElement), false)) { CWebDavTools::sendJsonResponse(array('error' => 'access_denied', 'message' => GetMessage("WD_ACCESS_DENIED"))); } if (!empty($_POST['checkViewByGoogle'])) { CWebDavTools::sendJsonResponse(array('viewByGoogle' => CWebDavExtLinks::getDownloadCountForLink($_POST['extLink']) > 0)); } $hash = CWebDavExtLinks::getHashLink(array('IBLOCK_TYPE' => $ob->IBLOCK_TYPE, 'IBLOCK_ID' => $wdElement['element_array']['IBLOCK_ID'], 'ROOT_SECTION_ID' => $ob->arRootSection['ID']), array('PASSWORD' => '', 'LIFETIME_NUMBER' => CWebDavExtLinks::LIFETIME_TYPE_AUTO, 'LIFETIME_TYPE' => 'minute', 'URL' => $ob->_path, 'BASE_URL' => $ob->base_url, 'SINGLE_SESSION' => false, 'LINK_TYPE' => CWebDavExtLinks::LINK_TYPE_AUTO, 'VERSION_ID' => !empty($_GET['v']) ? $_GET['v'] : null, 'FILE_ID' => !empty($_GET['f']) ? $_GET['f'] : null, 'ELEMENT_ID' => $wdElement['item_id']), null); if (!empty($_POST['json'])) { CWebDavTools::sendJsonResponse(array('file' => $hash, 'viewerUrl' => CWebDavExtLinks::$urlGoogleViewer . urlencode($hash) . '&embedded=true')); } } elseif (!empty($_REQUEST['saveToDisk'])) { if ($USER->GetId() && check_bitrix_sessid()) { $data = CWebDavIblock::getRootSectionDataForUser($USER->GetID()); if ($data) { $savedFolderId = CIBlockWebdavSocnet::createSavedFolder($data['IBLOCK_ID'], $data['SECTION_ID'], $USER->GetID()); if ($savedFolderId) { $wdElement = $ob->GetObject(array('check_permissions' => false), false); //todo hack by load from url with historyget (example) if ($wdElement['not_found']) { $partUri = explode('element/historyget/', $ob->uri); if (!empty($partUri[1])) { $elementId = (int) $partUri[1];