Пишу свой модуль. Решил написать обработчик событий OnAfterIBlockElementAdd.
Вызываю при установке модуля функцию
RegisterModuleDependences(
"iblock",
"OnAfterIBlockElementAdd",
"vr_chess",
"MyClass",
"OnAfterIBlockElementAddHandler"
);
Далее в файле include.php прописываю
class MyClass{
function OnAfterIBlockElementAddHandler(&$arFields){
echo "<pre>";print_r($arFields); echo "</pre>";die();
}
}
Проблема заключается в том что в массиве $arFields не содержится ID элемента инфоблока.
Для сравнения если вызывать ту же самую функцию обработчика только через AddEventHandler то данной проблемы не возникает, но, увы, я не могу её использовать в проекте.
Вот чем отличаются результаты
С помощью RegisterModuleDependences
Array
(
[ACTIVE] => Y
[MODIFIED_BY] => 1
[IBLOCK_ID] => 19
[ACTIVE_FROM] =>
[ACTIVE_TO] =>
[SORT] => 500
[NAME] => вавп
[CODE] =>
[TAGS] =>
[PREVIEW_TEXT] =>
[PREVIEW_TEXT_TYPE] => text
[DETAIL_TEXT] =>
[DETAIL_TEXT_TYPE] => text
[TMP_ID] => 0
[PROPERTY_VALUES] =>
[IBLOCK_SECTION] => Array
(
)
[WF_COMMENTS] =>
[WF_STATUS_ID] => 1
[WF] => Y
[WF_NEW] =>
[SEARCHABLE_CONTENT] => ВАВП
)
И с помощью AddEventHandler
AddEventHandler(
"iblock",
"OnAfterIBlockElementAdd",
Array("MyClass", "OnAfterIBlockElementAddHandler")
);
выдает
Array
(
[ACTIVE] => Y
[MODIFIED_BY] => 1
[IBLOCK_ID] => 19
[ACTIVE_FROM] =>
[ACTIVE_TO] =>
[SORT] => 500
[NAME] => ваа
[CODE] =>
[TAGS] =>
[PREVIEW_TEXT] =>
[PREVIEW_TEXT_TYPE] => text
[DETAIL_TEXT] =>
[DETAIL_TEXT_TYPE] => text
[TMP_ID] => 0
[PROPERTY_VALUES] =>
[IBLOCK_SECTION] => Array
(
)
[WF_COMMENTS] =>
[WF_STATUS_ID] => 1
[WF] => Y
[SEARCHABLE_CONTENT] => ВАА
[CREATED_BY] => 1
[~DATE_CREATE] => now()
[~TIMESTAMP_X] => now()
[XML_ID] => 414
[WF_PARENT_ELEMENT_ID] => 414
[ID] => 415
[RESULT] => 415
)