• Модуль: 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;
}