Как в битрикс обновить множественное свойство Файл у элемента?

95
Алексей,
Как в битрикс обновить множественное свойство Файл у элемента?

Если нужно заменить одну из картинок с сохранением порядка, можно сделать это напрямую, работая с \Bitrix\Iblock\ElementPropertyTable

\Bitrix\Main\Loader::includeModule('iblock');
// Сделаем запрос в таблицу и найдём текущую запись с нужной картинкой
if ($arRowProp = \Bitrix\Iblock\ElementPropertyTable::getList([
	'filter' => [
		'IBLOCK_ELEMENT_ID' => $iblockItemId, // ID элемента инфоблока
		'IBLOCK_PROPERTY_ID' => $propId, // ID свойства для картинок
		'VALUE' => $oldImgId // ID файла
	]
])->fetch()) {
	// Обновляем значение на новое
	if (\Bitrix\Iblock\ElementPropertyTable::update(
		$arRowProp['ID'], 
		// $newImgId - ID нового файла, полученного, например, 
		// методами CFile::SaveFile(CFile::MakeFileArray('/path/to/file'), 'iblock');
		["VALUE" => $newImgId , "VALUE_NUM" => $newImgId] 
	)) {
		echo 'load!';
	}
}

При этом сохраняется сортировка изображений и поле DESCRIPTION (его можно также заменить в update)

Опубликовано 12 мая 2021
примеры d7, разработчику, файлы
Поделиться
Комментарии
Зарегистрируйтесь чтобы получать уведомления об ответе
Если нужно заменить одну из картинок с сохранением порядка, можно сделать это напрямую, работая с \Bitrix\Iblock\ElementPropertyTable