- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/lib/ui/viewer/previewmanager.php
- Класс: BitrixMainUIViewerPreviewManager
- Вызов: PreviewManager::sendPreview
protected function sendPreview($file, $forceTransformation = false): ResponseAjaxJson
{
$render = $this->buildRenderByFile(
$file['ORIGINAL_NAME'],
$file['CONTENT_TYPE'],
$this->getSourceUri(),
$this->prepareRenderParameters($file)
);
if ($render instanceof RendererStub || $forceTransformation)
{
$filePreviewData = $this->getViewFileData($file);
if ($filePreviewData)
{
$sourceUri = $this->getSourceUri()->addParams([
self::GET_KEY_TO_SEND_PREVIEW_CONTENT => $this->signFileId($filePreviewData['ID']),
]);
$render = $this->buildRenderByFile(
$filePreviewData['ORIGINAL_NAME'],
$filePreviewData['CONTENT_TYPE'],
$sourceUri
);
}
else
{
$generatePreview = $this->generatePreview($file['ID']);
if ($generatePreview instanceof MainResult)
{
if ($generatePreview->isSuccess())
{
return ResponseAjaxJson::createSuccess($generatePreview->getData());
}
return ResponseAjaxJson::createError($generatePreview->getErrorCollection());
}
return ResponseAjaxJson::createError();
}
}
if ($render)
{
return ResponseAjaxJson::createSuccess([
'html' => $render->render(),
'data' => $render->getData(),
]);
}
return ResponseAjaxJson::createError();
}