После установки модуля нужно проверить в таблице битрикс "b_module_to_module" установилось ли событие.
И дальше уже отталкиваться от этого.
Если использовать автозагрузку классов из модуля, то файлы с классами нужно называть полностью маленький буквами, а не верблюжьим стилем как в файле с классом.
Файл с классом должен лежать в модуле в папке lib
Если используются пространства имён, то делать в этой папке соответствующей пространству имён подпапки
Пример для обработки события обновления поля Highload-блока.
Конкретно для Highload-блоков имя модуля, событие которого перехватываем не указывается,
к самому названию события приписывается название Highload-блока.
Файл
www\local\modules\red.october\install\index.php
<?php
......................
class red_october extends CModule
{
function installDB()
{
Loader::includeModule($this->MODULE_ID);
//Регистрация события
$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->registerEventHandlerCompatible(
'',
'DollarExchangeRateOnAfterUpdate',
'red.october',
'\\red\\october\\Events\\RecordDataFinalSellingPrice',
'RecordData'
);
...................
}
........................
function unInstallDB()
{
//Отмена регистрации события
$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->unRegisterEventHandler(
'',
'DollarExchangeRateOnBeforeUpdate',
'red.october',
'\\red\\october\\Events\\RecordDataFinalSellingPrice',
'RecordData'
);
}
}
?>
Файл с обработчиком события
\www\local\modules\red.october\lib\events\recorddatafinalsellingprice.php
<?
namespace red\october\Events;
class RecordDataFinalSellingPrice
{
public static function RecordData($recordId)
{
\Bitrix\Main\Diag\Debug::writeToFile($recordId, $varName = __DIR__, $fileName = "/local/debug/debug.log");
}
}