- Модуль: disk
- Путь к файлу: ~/bitrix/modules/disk/lib/document/bitrixhandler.php
- Класс: BitrixDiskDocumentBitrixHandler
- Вызов: BitrixHandler::getDataForViewFile
public function getDataForViewFile(FileData $fileData)
{
if(!$this->checkRequiredInputParams($fileData->toArray(), array(
'file',
)))
{
return null;
}
$specificVersionModel = $fileData->getVersion();
$urlManager = Driver::getInstance()->getUrlManager();
$attachedId = false;
if($fileData->getAttachedObject())
{
$attachedId = $fileData->getAttachedObject()->getId();
}
if($specificVersionModel)
{
$view = $specificVersionModel->getView();
if($fileData->getAttachedObject())
{
$viewUrl = $urlManager->getUrlForShowAttachedVersionViewHtml($attachedId);
$fallbackUrl = $urlManager->getUrlForShowAttachedVersionViewHtml($attachedId, array('mode' => 'iframe'));
}
else
{
$viewUrl = $urlManager->getUrlForShowVersionViewHtml($specificVersionModel);
$fallbackUrl = $urlManager->getUrlForShowVersionViewHtml($specificVersionModel, array('mode' => 'iframe'));
}
$id = $specificVersionModel->getId();
}
else
{
$view = $fileData->getFile()->getView();
if($attachedId > 0)
{
$viewUrl = $urlManager->getUrlForShowAttachedFileViewHtml($attachedId, array(), $fileData->getFile()->getUpdateTime()->getTimestamp());
$fallbackUrl = $urlManager->getUrlForShowAttachedFileViewHtml($attachedId, array('mode' => 'iframe'), $fileData->getFile()->getUpdateTime()->getTimestamp());
}
else
{
$viewUrl = $urlManager->getUrlForShowViewHtml($fileData->getFile());
$fallbackUrl = $urlManager->getUrlForShowViewHtml($fileData->getFile(), array('mode' => 'iframe'));
}
$id = $fileData->getFile()->getId();
}
if($view->isHtmlAvailable())
{
$viewerParams = array(
'width' => $view->getJsViewerWidth(),
'height' => $view->getJsViewerHeight(),
'hideEdit' => $view->isJsViewerHideEditButton()? 1: 0,
'src' => $viewUrl,
);
if($view->getJsViewerFallbackHtmlAttributeName())
{
$viewerParams[$view->getJsViewerFallbackHtmlAttributeName()] = $fallbackUrl;
}
if($view->isTransformationAllowed($fileData->getSize()))
{
$viewerParams['transformTimeout'] = $view->getTransformTime();
}
return array(
'id' => $id,
'viewUrl' => $viewUrl,
'neededDelete' => false,
'neededCheckView' => false,
'viewerType' => $view->getJsViewerType(),
'viewerParams' => $viewerParams,
);
}
else
{
$view->transformOnOpen($fileData->getFile());
}
return null;
}