int Add(
array arFields, bool bResort = true, bool bUpdateSearch = true ); Метод добавляет новый раздел в информационный блок. Перед добавлением раздела вызываются обработчики события OnBeforeIBlockSectionAdd из которых можно изменить значения полей или отменить добавление раздела вернув сообщение об ошибке. После добавления раздела вызывается событие OnAfterIBlockSectionAdd. Параметры функции| Параметр | Описание |
|---|
| arFields | Массив вида Array("поле"=>"значение", ...), содержащий значения полей раздела инфоблоков. | | bResort | Флаг, указывающий пересчитывать ли правую и левую границы после изменения (поля LEFT_MARGIN и RIGHT_MARGIN). Установите значение в false, если необходимо выполнить большое количество добавлений при небольшом исходном количестве разделов (например автоматизированное создание дерева разделов "с нуля"), в этом случае для повышения производительности можно установить параметр в false, а после всех изменений вызвать метод CIBlockSection::ReSort() | | bUpdateSearch | Флаг, указывающий, что раздел должен быть проиндексирован для поиска сразу же после сохранения. |
Возвращаемое значениеМетод возвращает код добавленного раздела блока, если добавление прошло успешно. При возникновении ошибки функция вернет false, а в свойстве объекта LAST_ERROR будет содержаться текст ошибки.См. также- CIBlockSection::Update
- OnBeforeIBlockSectionAdd
- OnAfterIBlockSectionAdd
Примеры использования $bs = new CIBlockSection; $arFields = Array( "ACTIVE" => $ACTIVE, "IBLOCK_SECTION_ID" => $IBLOCK_SECTION_ID, "IBLOCK_ID" => $IBLOCK_ID, "NAME" => $NAME, "SORT" => $SORT, "PICTURE" => $_FILES["PICTURE"], "DESCRIPTION" => $DESCRIPTION, "DESCRIPTION_TYPE" => $DESCRIPTION_TYPE );
if($ID > 0) { $res = $bs->Update($ID, $arFields); } else { $ID = $bs->Add($arFields); $res = ($ID>0); }
if(!$res) echo $bs->LAST_ERROR; ?>
|