SubscribeTable::onBeforeUpdate()
Сигнатура
public static onBeforeUpdate(Event $event) : mixed
Параметры
$event
Event
Возвращаемое значение
mixed
Как применяется в SubscribeTable
SubscribeTable::onBeforeUpdate() — метод класса \Bitrix\Catalog\SubscribeTable модуля «Торговый каталог». Это ORM-сущность D7 (наследник DataManager): строки читаются как объекты EO_Subscribe, наборы — как EO_Subscribe_Collection. Метод достаётся SubscribeTable от DataManager::onBeforeUpdate: поведение общее для всех сущностей, а данные, поля и классы — свои.
Событие OnBeforeUpdate сущности SubscribeTable. Статический метод в классе — обработчик по умолчанию; чтобы вмешаться в запись из своего кода, подпишитесь на событие через ORM-менеджер событий \Bitrix\Main\ORM\EventManager: он принимает класс сущности и код события из константы.
use Bitrix\Main\Loader;
use Bitrix\Main\ORM\EventManager;
use Bitrix\Main\ORM\Event;
use Bitrix\Main\ORM\EventResult;
use Bitrix\Main\ORM\EntityError;
use Bitrix\Catalog\SubscribeTable;
Loader::includeModule('catalog');
EventManager::getInstance()->addEventHandler(
SubscribeTable::class,
SubscribeTable::EVENT_ON_BEFORE_UPDATE,
function (Event $event) {
$fields = $event->getParameter('fields');
$result = new EventResult();
// $result->addError(new EntityError('Причина отказа'));
return $result;
}
);Собственные методы SubscribeTable
checkPermissionSubscribe()Метод проверяет разрешение на подписку на товар.getContactTypes()Метод возвращает массив доступных типов и позволяет добавить тип с помощью события.onAddContactType()Обработчик onAddContactType. Добавление нового типа контакта.onIblockElementDelete()Обработчик onIblockElementDelete для удаления данных о подписке в случае удаления товара.onProductSetAvailableUpdate()Метод OnProductSetAvailableUpdate для отправки уведомления подписчикам о положительном изменении доступности.onProductUpdate()onSaleOrderSaved()Обработчик OnSaleOrderSaved для отписки при оформлении заказа.onUserDelete()Обработчик onUserDelete для изменения данных подписки при удалении пользователя.runAgentToSendNotice()Метод запускает агент для отправки уведомлений подписчикам.runAgentToSendRepeatedNotice()Метод запускает агент для отправки повторных уведомлений подписчикам.sendNotice()Функция агента. Получает необходимые данные и отправляет уведомления пользователям.sendRepeatedNotice()Функция агента. Получает необходимые данные и отправляет уведомления пользователям.
onBeforeUpdate() есть и у других классов модуля «Торговый каталог»: CatalogIblockTable, CatalogViewedProductTable, DiscountCouponTable, DiscountModuleTable, DiscountRestrictionTable, DiscountTable, ExtraTable, GroupAccessTable.
Исходный файл: source/catalog/lib/subscribe.php:2010

