Всем доброго времени суток!
Столкнулся со следующей проблемой:
1) Есть готовый обработчик события, который успешно работает через init.php
2) Необходимо отказаться от ручных правок в коде, что бы просто скопировав файлы на сервер - ничего не затерлось, т.к. init.php уже мог быть модифицирован и нажатием одной кнопки Установить - у нас заработал ранее написанный и рабочий обработчик.
Первое, что пришло в голову - сделать простой каркас модуля и в install/index.php зарегистрировать его через registerEventHandler.
В теории выглядит все просто и например с событием OnBeforeEndBufferContent - все работает.
Но как только я меняю его на необходимый OnSaleOrderSaved - в ответ тишина.
Повторюсь, что тот же OnSaleOrderSaved через addEventHandler в init.php - работает.
Костыли:
/lib/sendorder.php _ class SendOrder { function onSaleOrderSavedHandler(); }
Если перед классом добавить addEventHandler в обход модульного registerEventHandler - все работает.
Буду рад услышать любые мысли / идеи по этому поводу. Может мне вообще модуль не нужен был.
И как-то через компоненты сделать можно, но я пока такой возможности не увидел.
P.S.: Почему не оставить костыль, если решение рабочее:
1. Во первых - это костыль.
2. Услышать мнение более опытных разработчиков касательного данного кейса.
3. В другой копии битрикса на боевом сайте - уже не работает данное решение, не понимаю почему.
С уважением, Марк.
Столкнулся со следующей проблемой:
1) Есть готовый обработчик события, который успешно работает через init.php
2) Необходимо отказаться от ручных правок в коде, что бы просто скопировав файлы на сервер - ничего не затерлось, т.к. init.php уже мог быть модифицирован и нажатием одной кнопки Установить - у нас заработал ранее написанный и рабочий обработчик.
Первое, что пришло в голову - сделать простой каркас модуля и в install/index.php зарегистрировать его через registerEventHandler.
В теории выглядит все просто и например с событием OnBeforeEndBufferContent - все работает.
Но как только я меняю его на необходимый OnSaleOrderSaved - в ответ тишина.
Повторюсь, что тот же OnSaleOrderSaved через addEventHandler в init.php - работает.
Костыли:
/lib/sendorder.php _ class SendOrder { function onSaleOrderSavedHandler(); }
Если перед классом добавить addEventHandler в обход модульного registerEventHandler - все работает.
Буду рад услышать любые мысли / идеи по этому поводу. Может мне вообще модуль не нужен был.
И как-то через компоненты сделать можно, но я пока такой возможности не увидел.
P.S.: Почему не оставить костыль, если решение рабочее:
1. Во первых - это костыль.
2. Услышать мнение более опытных разработчиков касательного данного кейса.
3. В другой копии битрикса на боевом сайте - уже не работает данное решение, не понимаю почему.
С уважением, Марк.