Пишу эту заметку, чтобы не искать потом на форуме.
Допустим, в инфоблоке ($IBID) есть пользовательское свойство PHOTO. Нам неоходимо очистить значение этого свойства для элемента $id.
Сперва необходимо сделать запрос для получения дополнительных сведений о значении:
После этого запроса мы получим в массив $ar_photo следующей структуры:
PROPERTY_VALUE_ID - это идентификатор конкретного значения свойства, VALUE - само значение свойства
После этого весьма экзотическим образом устанавливается свойство array('del' => 'Y', 'tmp_name' => '')
А затем удаляется файл из файлохранилища.
Допустим, в инфоблоке ($IBID) есть пользовательское свойство PHOTO. Нам неоходимо очистить значение этого свойства для элемента $id.
Сперва необходимо сделать запрос для получения дополнительных сведений о значении:
$bx_photo = CIBlockElement::GetProperty(
$IBID,
$id,
'sort',
'asc',
array('CODE' => 'PHOTO')
);
$ar_photo = $bx_photo->Fetch();
|
После этого запроса мы получим в массив $ar_photo следующей структуры:
Array ( [ID] [TIMESTAMP_X] [IBLOCK_ID] [NAME] [ACTIVE] [SORT] [CODE] [DEFAULT_VALUE] [PROPERTY_TYPE] [ROW_COUNT] [COL_COUNT] [LIST_TYPE] [MULTIPLE] [XML_ID] [FILE_TYPE] [MULTIPLE_CNT] [TMP_ID] [LINK_IBLOCK_ID] [SEARCHABLE] [FILTRABLE] [WITH_DESCRIPTION] [VERSION] [USER_TYPE] [IS_REQUIRED] [PROPERTY_VALUE_ID] [VALUE] [DESCRIPTION] [VALUE_ENUM] [VALUE_XML_ID] ) |
PROPERTY_VALUE_ID - это идентификатор конкретного значения свойства, VALUE - само значение свойства
После этого весьма экзотическим образом устанавливается свойство array('del' => 'Y', 'tmp_name' => '')
CIBlockElement::SetPropertyValueCode($_POST['id'], 'PHOTO', array(
$ar_photo['PROPERTY_VALUE_ID'] => array('del' => 'Y', 'tmp_name' => '')
));
|
А затем удаляется файл из файлохранилища.
CFile::Delete($ar_photo['VALUE']); |