вот таким образом в инстале я регистрирую меню, но нужно зарегистрировать уже после того как модуль стоит через updater.php - обновление модуля. как там сделать?
Администратор
Сообщений: Баллов: 1849Регистрация: 05.08.2005
Epic fail - сказать "это так просто" и не суметь сделать
1
21.01.2013 13:20:05
Точно так же вызвать в апдейтере RegisterModuleDependences
Не надо сверлить зубы через задний проход дрелью от Сваровски
А никто не пробовал свое событие в модуле сделать? Я что-то видимо сегодня очень туплю - но я не смог разрбраться до конца - где в типовых модулях битрикс при установке создаются новые события..
Администратор
Сообщений: Баллов: 1849Регистрация: 05.08.2005
Epic fail - сказать "это так просто" и не суметь сделать
0
28.01.2013 10:41:04
События не создаются - они вызываются. Функцией .
Не надо сверлить зубы через задний проход дрелью от Сваровски
foxman333 пишет: Документация по работе с событиями:
В принципе там все доступно описано, если внимательно почитать и походить по ссылкам внутри документации. По логике вещей, учитывая , следующим после подгрузки init.php подгружается /bitrix/php_interface/[ID сайта]/init.php , который не обновляется (единственный минус, что, если нужно выполнять обработчик на всех сайтах, то нужно прописать это в каждом файле init.php для каждого сайта).
Ссылки то не работают....
Администратор
Сообщений: Баллов: 1849Регистрация: 05.08.2005
Epic fail - сказать "это так просто" и не суметь сделать
0
06.05.2013 14:45:59
Не надо сверлить зубы через задний проход дрелью от Сваровски
Администратор
Сообщений: Баллов: 373Регистрация: 27.02.2008
0
06.05.2013 14:46:15
Цитата
kaa@sotex.ru пишет: Ссылки то не работают....
Вся информация в курсе Разработчик Bitrix Framework:
Вопрос: как обработчику события узнать, какое событие он обрабатывает? Как следует инициализировать такой обработчик функциями RegisterModuleDependences и AddEventHandler?
Предлагаю описать иначе:
Цитата
Вопрос: как обработчику события узнать, какое событие он обрабатывает?
Цитата
Решение: Зависит от способа инициализации.
1. AddEventHandler - сделайте прослойку.
Код
function OnAdd()
{
RealHandler("add");
}
function OnUpdate()
{
RealHandler("update");
}
2. RegisterModuleDependences - при регистрации добавьте аргумент.
Мы в своих модулях делаем универсальные обработчики, внутри которых идет разбор переменных в зависимости от источника вызова, и регистрируем обработчик с аргументом определяющим модуль. Как правило from_module_id = TO_METHOD_ARG. И другие разработчики делают универсальные обработчики (вижу по приходящим со стороны проектам), но видимо не все разработчики знают, что можно зарегистрировать обработчик с аргументом, и делают прослойки как "рекомендовано" в доках. У нас опять пришел со стороны проект с тремя сотнями(!) прослоек в модуле.
С одной стороны по коду обработчика вижу, что писал далеко не студент, а программист, которого я и к себе бы в команду взял на хороших условиях, а с другой стороны такое извращение в виде прослоек. Это уже явно говорит о том, что решение берется из документации.
Дополнение: Наверное стоит так же в решении по второму способу дописать и корректировку обработчика
Код
function Handler($arguments, &$arFields)
{
//Код обработчика
}
где, переменная без операнда аргумент, а переменная с операндом содержит массив данных, переданных в событие источником.