OnBeforeItemDelete
Данное событие позволяет выполнить дополнительные действия перед удалением записи из базы данных.
Вызывается из событий
Данное событие косвенно вызывается из событий, удаляющих записи: OnDelete,
OnDeleteAll, OnMassDelete. Все ранее упомянутые события в
свою очередь вызывают метод kTempTablesHandler::DeleteItems, который при помощи метода kDBItem::raiseEvent
вызывает данное событие. Более детально это продемонстрировано ниже:
OnDelete -> kTempTablesHandler::DeleteItems -> kDBItem::Delete -> kDBItem::raiseEvent
Входные параметры
название |
описание |
|---|---|
| id (int) |
|
Потенциальное применение
Данное событие в основном применяется для проверки того, что пользователю разрешено удалять конкретную запись. Как это сделать продемонстрировано на ниже приведённом примере.
function OnBeforeItemDelete(&$event)
{
parent::OnBeforeItemDelete($event);
$object =& $event->getObject();
/* @var $object kDBItem */
if ($object->GetDBField('Status') != STATUS_ACTIVE) {
// можно удалять только активные записи
$event->status = erFAIL;
}
}
В случае, когда запись, из выше приведённого примера, будет не активной, то она не будет удалена и событие OnAfterItemDelete также не будет вызвано.
См. также