Документация для разработчиков
Темная тема

OnAfterIBlockElementAdd

Описание и параметры

функция-обработчик(
 array &arFields
);
Событие "OnAfterIBlockElementAdd" вызывается после попытки добавления нового элемента информационного блока методом CIBlockElement::Add. Работает вне зависимости от того были ли созданы/изменены элементы непосредственно, поэтому необходимо дополнительно проверять параметр: RESULT_MESSAGE.

Параметры

ПараметрОписание
arFields Массив полей нового элемента информационного блока. Дополнительно, в элементе массива с индексом "RESULT" содержится результат работы (возвращаемое значение) метода CIBlockElement::Add и, в случае ошибки, элемент с индексом "RESULT_MESSAGE" будет содержать текст ошибки.

Обратите внимание, что все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.

Примечания:
  • Событие OnAfterIBlockElementAdd будет вызываться в любом случае, даже если в OnBeforeIBlockElementAdd сработало исключение и элемент добавлен не был. Узнать о том, что добавление было отменено в событии OnAfterIBlockElementAdd можно с помощью arFields["RESULT"]. Если добавление прошло успешно, в нем будет храниться ID элемента, иначе - false.
  • Если была загружена картинка для анонса или детальная картинка, то в arFields["PREVIEW_PICTURE"] (arFields["DETAIL_PICTURE"]) хранится исходный временный файл (из папки temp) в формате:
    (
                [name] => 3323207.jpg
                [type] => image/jpeg
                [tmp_name] => /tmp/phpAU0r3o
                [error] => 0
                [size] => 577894
                [del] => 
                [description] => 
                [MODULE_ID] => iblock
            ) 
    
    При этом реальный файл, который привязан к элементу, не указывается. В то же время в массив arFields передается ключ "PREVIEW_PICTURE_ID" ("DETAIL_PICTURE"), в нём хранится ID привязанного к элементу файла.

Пример функции-обработчика

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("iblock", "OnAfterIBlockElementAdd", Array("MyClass", "OnAfterIBlockElementAddHandler"));
class MyClass { // создаем обработчик события "OnAfterIBlockElementAdd" function OnAfterIBlockElementAddHandler(&$arFields) { if($arFields["ID"]>0) AddMessage2Log("Запись с кодом ".$arFields["ID"]." добавлена."); else AddMessage2Log("Ошибка добавления записи (".$arFields["RESULT_MESSAGE"].")."); } } ?>


© «Битрикс», 2001-2020, «1С-Битрикс», 2020
Наверх