Код |
---|
if($arFields["ID"] > 0 && $arFields["IBLOCK_ID"] != 20) |
Цитата |
---|
Иван Курза пишет:
Функция CIBlockElement:Add() так же вызывает событие OnAfterIBlockElementAdd - у вас получается бесконечная рекурсия. Достаточно модифицировать первый ИФ до вида Код if($arFields["ID"] > 0 && $arFields["IBLOCK_ID"] != 20) ИД ваше "специально созданного инфоблока" равен 20, исходя из кода добавления элемента, значит логично предположить, что в него его-же елементы дублировать не нужно, поэтому добавляем условие $arFields["IBLOCK_ID"] != 20 и рекурсии больше не будет. Использовать в условии if (CModule::IncludeModule("iblock")) глупо, потомучто раз вызывается событие, значит модуль уже включен. Нужно проверять на $arFields["ID"]>0, поскольку событие вызывается даже тогда, когда произошла ошибка и элемент не добавлен: если элемент добавлен в $arFields["ID"] будет его ИД, а если не добавился то будет 0. |