Проблема в следующем:
у меня есть множественное свойство типа файл - 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) );
}
}
|