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