SetPropertyValuesEx
CIBlockElement::SetPropertyValuesEx( int ELEMENT_ID, int IBLOCK_ID, array PROPERTY_VALUES, array FLAGS = array() );
The method saves values of all iblock element properties. In contrast to SetPropertyValues may not contain a complete set of values. Property values not specified in the array PROPERTY_VALUES will be saved. This method is more efficient in terms of amount of queries to the database. Static method.
The method returns Null.
When empty value must be saved for multiple property, use false, because an empty array won't be saved.
Call parameters
Parameter | Description |
---|---|
ELEMENT_ID | Element ID with properties to be set. |
IBLOCK_ID | Information block ID. Optional. Read from database via element ID when not specified.
|
PROPERTY_VALUES | Array of property values. Contains a corresponding property value assigned to the property ID.
Must have the type: Array("property code1"=>"property value1", ....), where "property code" - numerical or symbolic property code, "property values" - single value or array of all property values (multiple). Notes:
|
FLAGS | Optional parameter provides information to optimize execution. Can contain the following keys:
|
See Also
Examples
Example 1:
<?
$ELEMENT_ID = 18; // element ID
$PROPERTY_CODE = "PROP1"; // property ID
$PROPERTY_VALUE = "Blue"; // property value
// Set new value for this element property
CIBlockElement::SetPropertyValuesEx($ELEMENT_ID, false, array($PROPERTY_CODE => $PROPERTY_VALUE));
?>
Example 2 (modifying single value property of HTML/Text type):
$el_id = 125; $iblock_id = 45; $prop[$prop_code] = array('VALUE'=>array('TYPE'=>'HTML', 'TEXT'=>$prop_value)); CIBlockElement::SetPropertyValuesEx($el_id, $iblock_id, $prop);
Example 3:
<input name="MyFile1" type="file" /> <input name="MyFile2" type="file" /> function makeCurentFilesArray($InputFileCode) { unset($arFiles, $TMPFILE); $arFiles = array(); // Array of all files within property [] $TMPFILE = array(); // Temporary array for current file 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); // Update file propert array
© «Bitrix24», 2001-2024