- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/lib/ui/viewer/transformation/callbackhandler.php
- Класс: BitrixMainUIViewerTransformationCallbackHandler
- Вызов: CallbackHandler::call
static function call($status, $command, $params, $result = array())
{
if (isset($params['fileId']) && $params['fileId'] > 0)
{
TransformerFileTransformer::clearInfoCache($params['fileId']);
}
if ($status == TransformerCommand::STATUS_ERROR && isset($params['id']))
{
return true;
}
if (!isset($params['id']) || !isset($params['fileId']) || !isset($result['files']))
{
return 'wrong parameters';
}
if ($status != TransformerCommand::STATUS_UPLOAD)
{
return 'wrong command status';
}
$previewLogId = $previewId = $previewImageId = 0;
$previewLog = FilePreviewTable::getList([
'select' => ['ID'],
'filter' => ['FILE_ID' => $params['fileId']],
'limit' => 1,
])->fetch();
if (isset($previewLog['ID']))
{
$previewLogId = $previewLog['ID'];
}
foreach ($result['files'] as $ext => $filePath)
{
if ($ext === 'jpg')
{
$previewImageId = self::saveFile($filePath, 'image/jpeg');
if ($previewImageId)
{
if ($previewLogId)
{
FilePreviewTable::update($previewLogId, [
'PREVIEW_IMAGE_ID' => $previewImageId,
]);
}
else
{
$resultAdd = FilePreviewTable::add([
'FILE_ID' => $params['fileId'],
'PREVIEW_IMAGE_ID' => $previewImageId,
]);
if ($resultAdd->getId())
{
$previewLogId = $resultAdd->getId();
}
}
}
}
else
{
$previewId = self::saveFile($filePath, MimeType::getByFileExtension($ext));
if ($previewLogId)
{
FilePreviewTable::update($previewLogId, [
'PREVIEW_ID' => $previewId,
]);
}
else
{
FilePreviewTable::add([
'FILE_ID' => $params['fileId'],
'PREVIEW_ID' => $previewId,
]);
}
self::sendNotifyAboutTransformation($params['fileId']);
}
}
(new Event('main', 'onFileTransformationComplete', [
'fileId' => $params['fileId'],
]))->send();
return true;
}