method public static

VoteTable::onBeforeUpdate()

Класс: \Bitrix\Vote\VoteTable

Сигнатура

public static onBeforeUpdate(Event $event) : EventResult|void

Параметры

$event Event

Возвращаемое значение

EventResult|void

Как применяется в VoteTable

VoteTable::onBeforeUpdate() — метод класса \Bitrix\Vote\VoteTable модуля «Опросы». VoteTable: Класс VoteTable Поля: ID int обязательное CHANNEL_ID int, C_SORT int, ACTIVE bool обязательное по умолчанию "Y", ANONYMITY int, NOTIFY bool обязательное по умолчанию "N", AUTHOR_ID int, AUTHOR ссылка, TIMESTAMP_X datetime, DATE_START datetime, DATE_END datetime, URL string(255) NULL, COUNTER int, TITLE string(255), DESCRIPTION text, DESCRIPTION_TYPE string(4), IMAGE_ID int, EVENT1 string(255), EVENT2 string(255), EVENT3 string(255), UNIQUE_TYPE int (закодировано в двоичной системе: UNIQUE_TYPE_SESSION - 1 (00001) UNIQUE_TYPE_COOKIE - 2 (00010) UNIQUE_TYPE_IP - 4 (00100) UNIQUE_TYPE_USER_ID - 8 (01000) UNIQUE_TYPE_USER_ID_NEW - 16 (10000) UNIQUE_TYPE = (UNIQUE_TYPE_SESSION | UNIQUE_TYPE_COOKIE | UNIQUE_TYPE_IP | UNIQUE_TYPE_USER_ID | UNIQUE_TYPE_USER_ID_NEW) KEEP_IP_SEC int, OPTIONS int,. Это ORM-сущность D7 (наследник DataManager): строки читаются как объекты EO_Vote, наборы — как EO_Vote_Collection. Метод достаётся VoteTable от DataManager::onBeforeUpdate: поведение общее для всех сущностей, а данные, поля и классы — свои.

Событие OnBeforeUpdate сущности VoteTable. Статический метод в классе — обработчик по умолчанию; чтобы вмешаться в запись из своего кода, подпишитесь на событие через 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\Vote\VoteTable;

Loader::includeModule('vote');

EventManager::getInstance()->addEventHandler(
    VoteTable::class,
    VoteTable::EVENT_ON_BEFORE_UPDATE,
    function (Event $event) {
        $fields = $event->getParameter('fields');
        $result = new EventResult();
        // $result->addError(new EntityError('Причина отказа'));
        return $result;
    }
);

Собственные методы VoteTable

Исходный файл: source/vote/lib/vote.php:232

Что будем искать? Например,Продвижение