Проблема в следующем:
у меня есть множественное свойство типа файл - MORE_PHOTO.
В другое множественное свойство PHOTO_SM я копирую картинки из свойства MORE_PHOTO поэлементно, при этом уменьшая их.
Всё формируется, всё работает, но когда я сохраняю изменения через CIBlockElement::SetPropertyValues - набор свойств постоянно множится, удваиваясь.
Я пришел к выводу, что необходимо ПОЛНОСТЬЮ чистить это свойство перед тем, как что-либо туда записывать.
Но вот загвоздка - как это сделать?
Прочитал, что для файлового массива необходимо добавить ["del"]="Y", тогда, вроде как, файл будет удален.
Вот кусок кода. Может быть, кто-нибудь подскажет, как, что и где исправить?
у меня есть множественное свойство типа файл - MORE_PHOTO.
В другое множественное свойство PHOTO_SM я копирую картинки из свойства MORE_PHOTO поэлементно, при этом уменьшая их.
Всё формируется, всё работает, но когда я сохраняю изменения через CIBlockElement::SetPropertyValues - набор свойств постоянно множится, удваиваясь.
Я пришел к выводу, что необходимо ПОЛНОСТЬЮ чистить это свойство перед тем, как что-либо туда записывать.
Но вот загвоздка - как это сделать?
Прочитал, что для файлового массива необходимо добавить ["del"]="Y", тогда, вроде как, файл будет удален.
Вот кусок кода. Может быть, кто-нибудь подскажет, как, что и где исправить?
Код |
---|
$db_props = CIBlockElement::GetProperty($arFields["IBLOCK_ID"], $arFields['ID'], "sort", "asc", Array("CODE"=>"PHOTO_SM")); while($ar_props = $db_props->Fetch()) { if ($ar_props["VALUE"]) { $ar_val = $ar_props["VALUE"]; $ar_val_id = $ar_props["PROPERTY_VALUE_ID"]; // формируем путь к файлу картинки путем сложения адреса сайта и внутреннего пути к картинке $img_path2 = $_SERVER['DOCUMENT_ROOT'].CFile::GetPath($ar_props["VALUE"]); $new_make_file = CFile::MakeFileArray($img_path2); $new_make_file["del"]="Y"; CIBlockElement::SetPropertyValueCode($arFields["ID"], "PHOTO", Array ($ar_val_id => $new_make_file) ); } } |