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

Правильный вызов регистрации обработчика на примере 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, как с ним работать можно найти в этом же посте выше и на просторах интернета без проблем
}
Количество показов: 5462
06.12.2015

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

Если вам была полезна статья можете отблагодарить автора:
Ethereum:

0x16Df809287333C49D3A237296C6248A6c08702Bc

Разработка сайта

Подайте заявку на разработку сайта на базе готового решения от компании 1С-Битрикс или одного из партнеров компании. Максимально подробно опишите, чему будет посвящен сайт, если это интернет-магазин - что он будет продавать, нужна ли мультиязычность, будут ли разные типы цен (розница, опт, крупный опт), будет ли интеграция с 1С, будет ли выгрузка товаров на различные торговые площадки...

Сопровождение сайта

Вы можете подать заявку на сопровождение вашего сайта на базе 1С-Битрикс. Сопровождение включает в себя: проверка актуальности обновлений сайта, проверка актуальности резервной копии, консультации по сайту. Опишите в заявке, какие еще объемы планируются на сопровождении и на какой срок вы планируете заключить договор на сопровождение - мы подберем подходящий вам бюджет на сопровождение

Работы по сайту

Вы можете подать заявку на выполнение определенного объема работ по сайту. Опишите в заявке объем работ. Это может быть разработка какого-то нового функционала, доработки по имеющемуся функционалу, доработки под требования сео-специалистов. На основании заявки вам будет сформирован бюджет работ, а также названы сроки на выполнение тех или иных работ.


Fatal error: Declaration of Pai\Sitemap\PaiSeoSitemap::Create($site_id, $max_execution_time, $NS, $arOptions, $modules, $iblocks, $clearIndexes) must be compatible with CAllSiteMap::Create($site_id, $max_execution_time, $NS, $arOptions = []) in /home/bitrix/www/bitrix/modules/pai.sitemap/lib/paiseositemap.php on line 183
[ErrorException] E_COMPILE_ERROR
Declaration of Pai\Sitemap\PaiSeoSitemap::Create($site_id, $max_execution_time, $NS, $arOptions, $modules, $iblocks, $clearIndexes) must be compatible with CAllSiteMap::Create($site_id, $max_execution_time, $NS, $arOptions = []) (0)
/home/bitrix/www/bitrix/modules/pai.sitemap/lib/paiseositemap.php:183
----------