Логотип

Привязка классов к событиям

Если у вашего модуля предусматривается какой-то функционал в серверной части, не зависящий от компонентов, то вынесите его в отдельный класс и поместите в файл в папке /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() соответственно.

Заключение

Статья получилось короткой, так как сама тема довольно лёгкая. Надеюсь вам было всё понятно, если же нет, пишите внизу, я отредактирую статью.

Написать комментарий

Внимание!

Этот сайт использует технологию "cookies" и интернет-сервисы для сбора технических данных!

Условия использования и другие юридические моменты можно найти в пользовательском соглашении и в политике конфиденциальности.

Цель - получение статистической информации и возможность работы множества сервисов на страницах сайта и самого сайта.

Если Вы не согласны на обработку данных на указанных выше условиях, покиньте сайт.