Правильный вызов регистрации обработчика на примере highload-инфоблока

Правильный вызов регистрации обработчика на примере highload-инфоблока

1212
06.12.2015

Правильный вызов регистрации обработчика на примере HL-блока BrandReference

Иногда возникает необходимость создания обработчиков для highload инфоблоков (например, программная установка UF_XML_ID, без которого не будет работать тип свойств инфоблоков "Справочник"), но в документации данный момент пока не раскрыт достаточно ясно, поэтому выкладываю тут верный вариант написания обработчиков.

Правильный вызов регистрации обработчика на примере HL-блока BrandReference с Compatibility (1я версия обработчиков):

\Bitrix\Main\EventManager::getInstance()->registerEventHandlerCompatible(
 '',
 'BrandReferenceOnBeforeUpdate',
 'your.module.id',
 '\\YourModule\\ClassName',
 'YourHandlerMethodName'
);

...
public static function YourHandlerMethodName($arr1, $fields){
 // $arr1 - массив с ID=>$id
 // $fields - массив полей
}

Без Compatibility (2я версия обработчиков):

\Bitrix\Main\EventManager::getInstance()->registerEventHandler(
 '',
 'BrandReferenceOnBeforeUpdate',
 'your.module.id',
 '\\YourModule\\ClassName',
 'YourHandlerMethodName'
);

...
public static function YourHandlerMethodName(\Bitrix\Main\Entity\Event $event){
 // $event - экземпляр класса Entity\Event, как с ним работать можно найти в этом же посте выше и на просторах интернета без проблем
}

Источник: http://dev.1c-bitrix.ru/community/forums/messages/forum6/topic59870/message397687/


Благодарю за внимание! Делитесь вашими замечаниями в комментариях ниже.


P.S. Обращайтесь ко мне за приобретением лицензий и продлений на 1C-Битрикс "Управление сайтом", лицензий на облачную и коробочную версии Битрикс 24 а также за приобретением и внедрением готовых решений на базе 1С-Битрикс от партнеров. За более подробной информацией свяжитесь со мной любым удобным для вас способом


Комментарии

Еще никто не комментировал данную публикацию. Будьте первыми!

Добавить комментарий

captcha

Возврат к списку