• Модуль: 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;
}