1С-Битрикс поддерживает механизм событий, позволяющий разработчикам расширять и изменять поведение системы без модификации ядра. В этой статье рассмотрим основные события, которые можно использовать как в административной части, так и на клиентском сайте.
События в административной части
1. Контекстное меню администратора
- OnAdminContextMenuShow — позволяет изменять элементы контекстного меню в административной панели.
- OnBuildGlobalMenu — модификация глобального меню в админке.
- OnAdminListDisplay — изменение списка элементов в административных страницах.
2. Формы редактирования
- OnAdminTabControlBegin — изменение вкладок в формах редактирования элементов.
- OnAdminTabControlBuild — добавление новых вкладок в формы редактирования.
3. Обработка сохранения данных
- OnBeforeUserUpdate — выполняется перед обновлением пользователя.
- OnAfterUserUpdate — вызывается после обновления пользователя.
- OnBeforeIBlockElementUpdate — срабатывает перед обновлением элемента инфоблока.
- OnAfterIBlockElementUpdate — вызывается после обновления элемента инфоблока.
- OnBeforeIBlockElementDelete — перед удалением элемента инфоблока.
- OnAfterIBlockElementDelete — после удаления элемента инфоблока.
4. Управление модулями
- OnModuleInstall — вызывается при установке модуля.
- OnModuleUnInstall — вызывается при удалении модуля.
События на клиентской стороне
1. Работа с пользователями
- OnBeforeUserLogin — перед авторизацией пользователя.
- OnAfterUserLogin — после успешного входа пользователя.
- OnBeforeUserRegister — перед регистрацией нового пользователя.
- OnAfterUserRegister — после успешной регистрации.
- OnBeforeUserLogout — перед выходом пользователя.
- OnAfterUserLogout — после выхода пользователя.
2. Работа с инфоблоками
- OnBeforeIBlockElementAdd — перед добавлением элемента инфоблока.
- OnAfterIBlockElementAdd — после добавления элемента инфоблока.
- OnBeforeIBlockElementUpdate — перед обновлением элемента.
- OnAfterIBlockElementUpdate — после обновления элемента.
3. Обработка заказов (для интернет-магазина)
- OnSaleOrderBeforeSaved — перед сохранением заказа.
- OnSaleOrderSaved — после сохранения заказа.
- OnSaleOrderDeleted — после удаления заказа.
- OnSaleOrderCanceled — при отмене заказа.
- OnSaleOrderPaid — при оплате заказа.
4. Работа с контентом
- OnEpilog — срабатывает в конце загрузки страницы, позволяет модифицировать выводимый контент.
- OnProlog — вызывается перед обработкой заголовков страницы.
- OnEndBufferContent — позволяет изменить HTML-код перед отправкой пользователю.
Использование файла init.php
Файл init.php предназначен для регистрации обработчиков событий и подключения необходимых модулей. Он находится в директории /bitrix/php_interface/ и выполняется при каждом запросе.
Пример использования init.php для регистрации события:
Этот код добавляет новую кнопку в контекстное меню админки.
Заключение
Использование событий в 1С-Битрикс позволяет гибко изменять поведение системы без внесения изменений в ядро. Админка и клиентская часть поддерживают множество событий, позволяющих кастомизировать интерфейс, обработку данных и бизнес-логику проекта.