int
CIBlockElement::Add(
array arFields,
bool bWorkFlow = false,
bool bUpdateSearch = true,
bool bResizePictures = false
);
Метод добавляет новый элемент информационного блока. Перед добавлением элемента вызываются обработчики события OnBeforeIBlockElementAdd, из которых можно изменить значения полей или отменить добавление элемента вернув сообщение об ошибке. После добавления элемента вызывается событие OnAfterIBlockElementAdd.
Параметры функции
| Параметр | Описание |
|---|---|
| arFields | Массив вида Array("поле"=>"значение", ...), содержащий значения полей элемента инфоблоков и дополнительно может содержать поле "PROPERTY_VALUES" - массив со всеми значениями свойств элемента в виде массива Array("код свойства"=>"значение свойства"). Где "код свойства" - числовой или мнемонический код свойства, "значение свойства" - одиночное значение, либо массив значений если свойство множественное. Дополнительно для сохранения значения свойств см: CIBlockElement::SetPropertyValues(), CIBlockElement::SetPropertyValueCode() |
| bWorkFlow | Вставка в режиме документооборота. Если true и модуль документооборота установлен, то данное добавление будет учтено в журнале изменения элемента. Не обязательный параметр, по умолчанию вставка в режиме документооборота отключена. |
| bUpdateSearch | Индексировать элемент для поиска. Для повышения производительности можно отключать этот параметр во время серии добавлений элементов, а после вставки переиндексировать поиск. Не обязательный параметр, по умолчанию элемент после добавления будет проиндексирован в поиске. |
| bResizePictures | Использовать настройки инфоблока для обработки изображений. По умоляанию настройки не применяются. Если этот параметр имеет значение true, то к полям PREVIEW_PICTURE и DETAIL_PICTURE будут применены правила генерации и масштабирования в соответствии с настройками информационного блока. |
Возвращаемое значение
Метод возвращает код добавленного элемента инфоблока, если добавление прошло успешно. При возникновении ошибки метод вернет false, а в свойстве объекта LAST_ERROR будет содержаться текст ошибки.См. также
- CIBlockElement::Update
- CIBlockElement::SetPropertyValues()
- CIBlockElement::SetPropertyValueCode()
- OnBeforeIBlockElementAdd
- OnAfterIBlockElementAdd
Примеры использования
<?
$el = new CIBlockElement;
$PROP = array();
$PROP[12] = "Белый"; // свойству с кодом 12 присваиваем значение "Белый"
$PROP[3] = 38; // свойству с кодом 3 присваиваем значение 38
$arLoadProductArray = Array(
"MODIFIED_BY" => $USER->GetID(), // элемент изменен текущим пользователем
"IBLOCK_SECTION_ID" => false, // элемент лежит в корне раздела
"IBLOCK_ID" => 18,
"PROPERTY_VALUES"=> $PROP,
"NAME" => "Элемент",
"ACTIVE" => "Y", // активен
"PREVIEW_TEXT" => "текст для списка элементов",
"DETAIL_TEXT" => "текст для детального просмотра",
"DETAIL_PICTURE" => CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/image.gif")
);
if($PRODUCT_ID = $el->Add($arLoadProductArray))
echo "New ID: ".$PRODUCT_ID;
else
echo "Error: ".$el->LAST_ERROR;
?>
Пользовательские комментарии
Пользовательские комментарии не являются официальной документацией. Ответственность за их использование несет сам пользователь.Добавлять комментарии могут только зарегистрированные пользователи. Сообщения для просмотра появляются после модерации.
|
| ||
|
/************************************************************************************
ОПИСАНИЕ МАССИВА ДЛЯ СВОЙСТВА С ТИПОМ html/text *************************************************************************************/
| ||
|
| ||
|
Описание массива для свойства типа СПИСОК
, где $ENUM_ID - это ID-значения в списке, его можно получить при помощи: CIBlockPropertyEnum::GetList | ||
|
| ||
|
Рассмотрим задачу добавления элемента с установкой ему пары для свойства "значение" => "описание"
| ||
|
|
|
При добавлении нового значения/значений множественного свойство типа файл необходимо использовать ключи вида n0,n1,n2 ... nN .
Данный пример представлен для случая добавления одного нового значения в множественное свойство типа файл. |
|
| ||
|
Для вставки свойства типа text/html используйте конструкцию вида:
| ||
|
| ||
|
Пример использования, когда детальная картинка загружается непосредственно из формы.
| ||
|
| ||
|
Пример массива для вставки видео
| ||
|
| ||
|
Для указания типа html/text для полей PREVIEW_TEXT и DETAIL_TEXT используйте дополнительный параметр массива:
| ||
|
| ||
|
Получить следующий ID для свойства типа "Счётчик" можно методом CIBlockSequence::GetNext() и указать его в методе CIBlockElement:Add().
Пример:
| ||
|
| ||
|
Описание массива для свойства типа СПИСОК МНОЖЕСТВЕННОГО ВЫБОРА (чекбоксы или мультиселект)
| ||

