SetPropertyValuesEx
Описание и параметры
CIBlockElement::SetPropertyValuesEx( int ELEMENT_ID, int IBLOCK_ID, array PROPERTY_VALUES, array FLAGS = array() );
Метод сохраняет значения всех свойств элемента информационного блока. В отличие от SetPropertyValues может не содержать полный набор значений. Значения свойств, неуказанных в массиве PROPERTY_VALUES, будут сохранены. Этот метод более экономен в количестве запросов к БД. Метод статический.
Метод возвращает Null.
Если необходимо сохранить пустое значение для множественного свойства, то используйте значение false, так как просто пустой массив не сохранится.
Параметры вызова
| Параметр | Описание |
|---|---|
| ELEMENT_ID | Код элемента, значения свойств которого необходимо установить. |
| IBLOCK_ID | Код информационного блока. Может быть не указан. В этом случае будет прочитан из базы данных по коду элемента.
|
| PROPERTY_VALUES | Массив значений свойств, в котором коду свойства ставится в соответствие значение свойства.
Должен быть вида Array("код свойства1"=>"значения свойства1", ....), где "код свойства" - числовой или символьный код свойства, "значения свойства" - одно или массив всех значений свойства (множественное). Примечания:
|
| FLAGS | Необязательный параметр предоставляет информацию для оптимизации выполнения. Может содержать следующие ключи:
|
Смотрите также
Примеры использования
Пример 1:
<? $ELEMENT_ID = 18; // код элемента $PROPERTY_CODE = "PROP1"; // код свойства $PROPERTY_VALUE = "Синий"; // значение свойства // Установим новое значение для данного свойства данного элемента CIBlockElement::SetPropertyValuesEx($ELEMENT_ID, false, array($PROPERTY_CODE => $PROPERTY_VALUE)); ?>
Пример 2 (изменение немножественного свойства типа HTML/Text):
$el_id = 125;
$iblock_id = 45;
$prop[$prop_code] = array('VALUE'=>array('TYPE'=>'HTML', 'TEXT'=>$prop_value));
CIBlockElement::SetPropertyValuesEx($el_id, $iblock_id, $prop);
Пример 3:
<input name="MyFile1" type="file" />
<input name="MyFile2" type="file" />
function makeCurentFilesArray($InputFileCode) {
unset($arFiles, $TMPFILE);
$arFiles = array(); // Массив всех файлов в свойстве []
$TMPFILE = array(); // Временный массив для текщего файла
if(is_array($_FILES[$InputFileCode])) {
foreach($_FILES[$InputFileCode]['tmp_name'] as $key => $val) {
if(file_exists($val)) {
foreach($_FILES[$InputFileCode] as $namekey => $nameval) {
$TMPFILE[$namekey] = $nameval[$key];
}
$arFiles[] = array('VALUE' => $TMPFILE, 'DESCRIPTION' => $TMPFILE['name']);
}
}
}
return $arFiles;
}
if (!empty($_FILES['MyFile1'])) $PropFileArr['MyFile1'] = makeCurentFilesArray('MyFile1');
if (!empty($_FILES['MyFile2'])) $PropFileArr['MyFile2'] = makeCurentFilesArray('MyFile2');
CIBlockElement::SetPropertyValuesEx($Element_ID, $IBlock_ID, $PropFileArr); // Обновляем массив свойств типа файл
© «Битрикс», 2001-2025, «1С-Битрикс», 2025