$eventManager = EventManager::getInstance();
$eventManager->addEventHandler(
"iblock",
"OnBeforeEventAdd",
"onBeforeEventAdd"
);
function onBeforeEventAdd(&$arFields){
if($arFields['USER_GROUP'] == CORP_USER){
return false;
}
}
// регистрируем обработчики событий
if($add_hlId){
if($add_hlId != $remove_hlId){
$handlers = [];
switch ($add_handler_action) {
case 'create':
$handlers[0] = 'OnBeforeAdd';
break;
case 'update':
$handlers[0] = 'OnBeforeUpdate';
break;
case 'delete':
$handlers[0] = 'OnBeforeDelete';
break;
default:
$handlers[0] ='OnBeforeAdd';
$handlers[1] = 'OnBeforeUpdate';
$handlers[2] = 'OnBeforeDelete';
break;
}
// file_put_contents($_SERVER['DOCUMENT_ROOT'].'/log_iblock_setlog.txt', serialize($handlers)."\r\n", FILE_APPEND);
foreach ($handlers as $handler) {
$hlname = \Alexburov\Exportimport\Helper::InstallHLEvents($add_hlId, $handler);
}
}
public static function InstallHLEvents($hlId, $handler){
$entity = self::GetHLentity($hlId);
$hlname = $entity->getName(); // получаем имя highload блока
// $handler - принимает значение OnBeforeAdd, OnBeforeUpdate, OnBeforeDelete,
$eventName = $hlname.$handler; // конкатинируем имя highload блока и название обработчика получаем имя события на который мы и ставим обработчик (метод класса Helper например OnBeforeUpdate)
// регистрируем событие
$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->registerEventHandler("", $eventName, "alexburov.exportimport", "\Alexburov\Exportimport\Helper",$handler);
return $eventName;
}
public static function UnInstallHLEvents($hlId, $handler){
$entity = self::GetHLentity($hlId);
$hlname = $entity->getName();
$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventName = $hlname.$handler;
$eventManager->unRegisterEventHandler(" ", $eventName, "alexburov.exportimport", "\Alexburov\Exportimport\Helper", $handler);
return $eventName;
}