Требуется сохранить превью видео с youtube в качестве картинки анонса. Пытаюсь сделать это через событие OnBeforeIBlockElementAdd, обработчик события ниже:
Однако после сохранения элемента инфоблока ничего не происходит. Поле "картинка для анонса" остаётся пустым.
Как это можно исправить?
Код |
---|
function savePreview (&$arFields){ if ($arFields["IBLOCK_ID"] == 29){ $prop = \CIBlockElement::GetProperty($arFields['IBLOCK_ID'], $arFields['ID'], array("SORT" => "ASC"), array("CODE" => "VIDEO")); if ($arProp = $prop->Fetch()) { $path = $arProp["VALUE"]['path']; $addr = preg_replace("/youtu\.be\/([a-zA-z0-9_-]+)/", 'img.youtube.com/vi/$1/mqdefault.jpg',$path); $file = \CFile::MakeFileArray($addr); $file = array_merge($file, array("del" => ${"VIDEO_del"}, "MODULE_ID" => "iblock")); $fid = \CFile::SaveFile($file, ""); $arFile = \CFile::GetFileArray($fid); $arFields["PREVIEW_PICTURE"] = $arFile; } } } |
Как это можно исправить?