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

