Добавление обработчиков событий в ваш кастомный модуль

Материал из Umicms
Версия от 12:05, 15 мая 2018; Kublan (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к:навигация, поиск

Актуально для версии 18 85081

Для регистрации обработчиков событий, необходимо в папку вашего модуля, к примеру classes/components/mymodule/ добавить файл events.php, в котором прописать обработчики для событий, допустим:

<?php
new umiEventListener("systemSwitchElementActivity", "mymodule", "onChangeActivity");
?>

Потом можно создать файл handlers.php и прописать в нем методы обработчики:

<?php

    class MymoduleHandlers {
        /** @var catalog $module */
        public $module;

        public function onChangeActivity(iUmiEventPoint $oEventPoint) {
        ....
        }
       
};
?>

И в основном файле classes/components/mymodule/class.php, в методе конструкторе __construct() подключить класс (файл) с обработчиками событий:

        $this->__loadLib("event.php");
        $this->__implement("MymoduleHandlers");

Примеры можно посмотреть во многих модулях. Файл events.php для модуля подключается автоматически, в классе umiEventsController.


Для старой реализации модулей, необходимо в папку вашего модуля, к примеру classes/modules/mymodule/ добавить файл events.php, в котором прописать обработчики для событий, допустим:

<?php
new umiEventListener("systemSwitchElementActivity", "mymodule", "onChangeActivity");
?>

Потом можно создать файл __event_handlers.php и прописать в нем методы обработчики:

<?php

    abstract class __mymodule_handlers {

        public function onChangeActivity(iUmiEventPoint $oEventPoint) {
        ....
        }
       
};
?>

И в основном файле classes/modules/mymodule/class.php, в методе конструкторе __construct() подключить класс (файл) с обработчиками событий:

        $this->__loadLib("__event_handlers.php");
        $this->__implement("__mymodule_handlers");

Примеры можно посмотреть во многих модулях. Файл events.php для модуля подключается автоматически, в классе umiEventsController.