Роберт Басыров, найдите время чуток улучшить [url=http://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=2816]здесь[/url].
[QUOTE][B]Вопрос:[/B] как обработчику события узнать, какое событие он обрабатывает? Как следует инициализировать такой обработчик функциями [B]RegisterModuleDependences[/B] и [B]AddEventHandler[/B]?[/QUOTE]
Предлагаю описать иначе:
[QUOTE][B]Вопрос:[/B] как обработчику события узнать, какое событие он обрабатывает?
[/QUOTE]
[QUOTE][B]Решение[/B]: Зависит от способа инициализации.
1. [B]AddEventHandler[/B] - сделайте прослойку.
[CODE]function OnAdd()
{
RealHandler("add");
}
function OnUpdate()
{
RealHandler("update");
} [/CODE]
2. [B]RegisterModuleDependences[/B] - при регистрации добавьте аргумент.
[CODE]$TO_METHOD_ARG = Array("argument"=>"OnUserDelete");
RegisterModuleDependences("main", "OnUserDelete", "forum", "CForum", "OnUserDelete", $sort, $TO_PATH, $TO_METHOD_ARG);
[/CODE][/QUOTE]
Мы в своих модулях делаем универсальные обработчики, внутри которых идет разбор переменных в зависимости от источника вызова, и регистрируем обработчик с аргументом определяющим модуль. Как правило [I]from_module_id[/I] = [I]TO_METHOD_ARG[/I]. И другие разработчики делают универсальные обработчики (вижу по приходящим со стороны проектам), но видимо не все разработчики знают, что можно зарегистрировать обработчик с аргументом, и делают прослойки как "рекомендовано" в доках. У нас опять пришел со стороны проект с [U][B]тремя сотнями[/B][/U](!) прослоек в модуле.
С одной стороны по коду обработчика вижу, что писал далеко не студент, а программист, которого я и к себе бы в команду взял на хороших условиях, а с другой стороны такое извращение в виде прослоек. Это уже явно говорит о том, что решение берется из документации.
[B]Дополнение:[/B]
Наверное стоит так же в решении по второму способу дописать и корректировку обработчика
[CODE]function Handler($arguments, &$arFields)
{
//Код обработчика
} [/CODE]где, переменная без операнда аргумент, а переменная с операндом содержит массив данных, переданных в событие источником.