Привязка классов к событиям
Если у вашего модуля предусматривается какой-то функционал в серверной части, не зависящий от компонентов, то вынесите его в отдельный класс и поместите в файл в папке /lib/ дистрибутива решения, файл назовите также как и класс. В этом файле вам необходимо задать ваше пространство имён, поместив туда в начало строчку похожую на:
namespace Aristov\VTenders
Где Aristov - код партнёра Битрикса.
Теперь допустим, ваш класс называется Tools и в нём есть метод saveEventHandler и вы хотите, чтобы этот метод вызывался при сохранении элемента инфоблока. Для этого просто вызовите функцию RegisterModuleDependences с правильными параметрами при установке модуля и всё. Также не забудьте отписаться от события при удалении модуля, для этого вызовите уже UnRegisterModuleDependences. Рабочий пример:
function RegisterHandlers(){ RegisterModuleDependences("iblock", "OnAfterIBlockElementAdd", "aristov.vtenders", '\Aristov\VTenders\Tools', "saveEventHandler"); } function UnRegisterHandlers(){ UnRegisterModuleDependences("iblock", "OnAfterIBlockElementAdd", "aristov.vtenders", "Tools", "saveEventHandler"); }
Как видите, в своей работе я выношу такие вещи в методы и вызываю их в DoInstall() и DoUninstall() соответственно.
Заключение
Статья получилось короткой, так как сама тема довольно лёгкая. Надеюсь вам было всё понятно, если же нет, пишите внизу, я отредактирую статью.
Написать комментарий