Пытаюсь организовать обработку двух событий главного модуля. Возник интересный вопрос: можно ли в обработчике события определить идентификатор события, которое этот обработчик вызвало? Поиски по документации и форуму, равно как и по исходным кодам результатов не принесли. Так что сейчас не вижу другого решения, кроме как сделать для каждого события разные обработчики.
Код |
---|
//Вызывается до попытки регистрации нового пользователя методом CUser::Register
AddEventHandler('main', 'OnBeforeUserRegister', array('CCustomUserHandlers', 'OnCheckUserParams'));
//Вызывается в методе CUser::Update до изменения параметров пользователя
AddEventHandler('main', 'OnBeforeUserUpdate', array('CCustomUserHandlers', 'OnCheckUserParams'));
/**
* Обработчики пользовательской подсистемы
*/
class CCustomUserHandlers {
const DO_LOG = true;
const SPECIAL_USERS_GROUP = 16;
public static function OnCheckUserParams($arArgs) {
global $APPLICATION, $USER;
$sEvents = "";
// $sEvents .= var_export($arArgs, true) . "\n";
...
if ((strlen($sEvents) > 0) && self::DO_LOG)
AddMessage2Log("\n" . $sEvents);
return true;
}
} |
Возможно кто-нибудь поделится советом или собственным опытом на этот счёт.