• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/document/googleviewerhandler.php
  • Класс: BitrixDiskDocumentGoogleViewerHandler
  • Вызов: GoogleViewerHandler::getDataForViewFile
public function getDataForViewFile(FileData $fileData)
{
	if(!$this->checkRequiredInputParams($fileData->toArray(), array(
		'file',
	)))
	{
		return null;
	}

	$seconds = (int)300;
	$deathTime = new DateTime;
	$deathTime->add("+ {$seconds} seconds");

	$data = array(
		'TYPE' => ExternalLinkTable::TYPE_AUTO,
		'DEATH_TIME' => $deathTime,
	);
	$specificVersionModel = $fileData->getVersion();
	if($specificVersionModel)
	{
		$data['VERSION_ID'] = $specificVersionModel->getId();
	}
	$extLinkModel = $fileData->getFile()->addExternalLink($data);

	if(!$extLinkModel)
	{
		$this->errorCollection->add(array(new Error(Loc::getMessage('DISK_GOOGLE_VIEWER_HANDLER_ERROR_COULD_NOT_FIND_EXT_LINK'), self::ERROR_COULD_NOT_FIND_EXT_LINK)));
		$this->errorCollection->add($fileData->getFile()->getErrors());
	}

	$extLink = Driver::getInstance()->getUrlManager()->getUrlExternalLink(array(
		'hash' => $extLinkModel->getHash(),
		'action' => 'download',
	), true);

	return array(
		'id' => $extLinkModel->getHash(),
		'viewUrl' => Driver::getInstance()->getUrlManager()->generateUrlForGoogleViewer($extLink),
		'neededDelete' => false,
		'neededCheckView' => true,
	);
}