Центр документации
|
Самоучитель по интеграции дизайна и настройке Amiro.CMS на примере демонстрационной версии пакета Визитка »
Модули и их составляющие на разных этапах своей работы инициируют события. Событие - сигнал системы, о том, что что-то произошло. События Amiro.CMS имеют имя (что произошло), параметры (при каких условиях это произошло), и соответствующее имя модуля (где это произошло). Для того, чтобы обработать некоторое событие, необходимо зарегистрировать обработчик события с использованием метода AMI_Event::addHandler, указав на какое событие какого модуля он должен отреагировать.
$callback - это имя функции, либо массив содержащий объект и имя метода обработки события. Функция/метод обработки сбытия обязана принимать следующие параметры:
Где:
Если одному событию назначено несколько обработчиков, они будут вызываться поочередно, в том порядке, в каком они были добавлены в коде. Для того чтобы передать параметры в дальнейшую цепочку событий, необходимо в обработчике события вернуть массив входящих параметров $aEvent. Возвращаемые результаты необходимо добавить в данный возвращаемый параметр. Для того чтобы остановить дальнейшее выполнение цепочки событий, необходимо в качестве элемента массива вернуть
Используя обработчики событий, возможно контролировать процесс работы модулей без внесения изменений в исходный код самих модулей. Пример С данным обработчиком события сохранения модели элемента, модуль "Новости" будет при сохранении приводить заголовки новостей к верхнему регистру.
Обработчики событий любых модулей можно размещать в файле _local/common_functions.php Поскольку события вызываются неявно, они создают нелинейнойсть кода, которую можно отследить только через стек вызовов событий и список обработчиков. Поэтому события рекомендуется использовать только тогда, когда невозможен прямой вызов объектов. Полный список событий Amiro.CMS доступен на странице API Reference. |