Bitrix D7 Events — подписка на событие через EventManager
Пример регистрации обработчика события D7 с помощью EventManager и класса-обработчика.
use Bitrix\Main\EventManager;
// В init.php вашего сайта:
EventManager::getInstance()->addEventHandler(
'main', // модуль
'OnBeforeUserAdd', // событие
['\\My\\Handlers\\User', 'onBeforeUserAdd']
);
// Где-то в autoload-классе:
namespace My\\Handlers;
class User {
public static function onBeforeUserAdd(array &$fields) {
// Валидация/модификация
if (empty($fields['EMAIL'])) {
global $APPLICATION;
$APPLICATION->ThrowException('EMAIL обязателен');
return false;
}
$fields['ACTIVE'] = 'Y';
return true;
}
}