- Модуль: catalog
- Путь к файлу: ~/bitrix/modules/catalog/lib/compatible/eventcompatibility.php
- Класс: BitrixCatalogCompatibleEventCompatibility
- Вызов: EventCompatibility::handlerOnBeforeUpdate
static function handlerOnBeforeUpdate(CatalogModelEvent $event, $entity, $eventName)
{
$result = new CatalogModelEventResult();
if (!self::allowedEvents())
return $result;
self::disableEvents();
$handlerList = self::getHandlerList('catalog', $eventName);
if (!empty($handlerList))
{
$error = false;
$id = $event->getParameter('id');
$fields = $event->getParameter('fields');
$externalFields = $event->getParameter('external_fields');
$oldFields = $fields;
$oldExternalFields = $externalFields;
if (!empty($externalFields))
$fields = $fields + $externalFields;
foreach ($handlerList as $handler)
{
if (ExecuteModuleEventEx($handler, [$id, &$fields]) === false)
{
$error = true;
break;
}
}
unset($handler);
self::fillResultData($result, $entity, $oldFields, $oldExternalFields, $fields);
unset($oldExternalFields, $oldFields, $externalFields, $fields);
if ($error)
self::setHandlerError($result, $eventName);
unset($error);
}
unset($handlerList);
self::enableEvents();
return $result;
}