Добрый день!
Помогите разобраться с проблемой. Пытаюсь настроить автоматическое создание миниатюр для новостей (['PREVIEW_PICTURE']) из детальной картинки (['DETAIL_PICTURE']). В init.php прописана функция для события OnBeforeIBlockElementAdd:
Все работает ровно до последней строчки. Т.е. миниатюра создается, сохраняется там, где надо, но на последнем шаге не прописывается как превьюшка для элемента инфоблока.
При этом, если пошагово сохранять некоторые данные в лог, то оказывается, что функция вызывается не один раз, а два. В первый раз данные из $arFields не передаются, а второй раз передаются.
ПС. Абсолютно аналогичная функция для OnBeforeIBlockElementUpdate работает.
Помогите разобраться с проблемой. Пытаюсь настроить автоматическое создание миниатюр для новостей (['PREVIEW_PICTURE']) из детальной картинки (['DETAIL_PICTURE']). В init.php прописана функция для события OnBeforeIBlockElementAdd:
Код |
---|
function create_preview_pict(&$arFields){ if (!empty($arFields['DETAIL_PICTURE']) && empty($arFields['PREVIEW_PICTURE'])){ ... //здесь идет создание уменьшеной копии изображения с именем $f_id, которая сохраняется в папке '/upload/iblock/preview/'. ... $file_path = $_SERVER["DOCUMENT_ROOT"].'/upload/iblock/preview/'.$f_id.'.jpeg'; $arFields['PREVIEW_PICTURE'] = CFile::MakeFileArray($file_path); } } |
Все работает ровно до последней строчки. Т.е. миниатюра создается, сохраняется там, где надо, но на последнем шаге не прописывается как превьюшка для элемента инфоблока.
При этом, если пошагово сохранять некоторые данные в лог, то оказывается, что функция вызывается не один раз, а два. В первый раз данные из $arFields не передаются, а второй раз передаются.
ПС. Абсолютно аналогичная функция для OnBeforeIBlockElementUpdate работает.