События в Битрикс

Регистрация события (таблица b_module_to_module):

$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->registerEventHandler('search', 'OnReindex', 'iek.prodcat', '\Iek\Prodcat\SearchHandler', 'OnReindex');

Повесить обработчик на событие:

add-event.php
AddEventHandler("main", "OnAfterUserLogin", Array("MyClass", "OnAfterUserLogin"));
Событие Описание Пример использования
OnBeforeEndBufferContent перед выводом буферизированного контента Добавление «nofollow» для внешних ссылок, email cloaking
OnBeforeUserRegister до попытки зарегистрировать нового пользователя собственные проверки регистрации
OnBeforeUserLogin до попытки авторизации пользователя запрет входа пользователю вне локальной сети
OnAfterUserLogin после попытки авторизации пользователя очистка закешированных данных

Весь список событий

Запрет входа пользователю вне локальной сети

init.php
AddEventHandler("main", "OnBeforeUserLogin", array("LocalStuffOnly", "OnBeforeUserLoginHandler"));
LocalStuffOnly.php
class LocalStuffOnly {
 
  private static $errAuthLocalStuff = "Вы не имеете доступа вне локальной сети.";
  public static function OnBeforeUserLoginHandler($arFields) {
 
    if (strtolower($arFields["LOGIN"]) == "localuser" && !preg_match('~^(192\.168\.|10\.0\.)~', $_SERVER['REMOTE_ADDR'])) {
      global $APPLICATION;
      $APPLICATION->throwException(self::$errAuthLocalStuff);
      $GLOBALS['errAuthLocalStuff'] = self::$errAuthLocalStuff;
      return false;
    }
  }
 
}
Печать/экспорт