This is a wiki-based Developers Guide for In-Portal Open Source CMS. The purpose of this guide is to provide advanced users, web developers and programmers with documentation on how to expand, customize and improve the functionality and the code the In-Portal software. Please consider contributing to our documentation writing effort.
Данное событие косвенно (через метод kTempTablesHandler::DoCopyTempToOriginal) вызывается из события OnSave в процессе копирования данных из временной таблицы в оригинальную.
Входные параметры
название
описание
id(int)
ID, которое получила запись после её копирования из временной таблицы в оригинальную.
Объекты, которые будут получены из событий, вызываемых из класса kTempTablesHandler никогда не содержат достоверной информации.
Поэтому в случае, когда нужен объект, загруженный по ID скопированной записи, то его нужно загружать самому. Это будет показано на ниже приведённом примере.
$object =& $this->Application->recallObject($event->Prefix . '.-item', null, Array('skip_autoload' => true));
/* @var $object kDBItem */$object->SwitchToLive(); // для того, чтобы объект был загружен из оригинальной таблицы, а не из временной$object->Load($event->getEventParam('id'));
Потенциальное применение
Данное событие можно использовать для автоматического обновления или добавления данных в другие таблицы на основе только что сохранённых в оригинальную таблицу данных. Это примерно тоже самое, что и используя параметр ids события OnSave, но только здесь можно работать с ID также и подчинённых записей. Ниже приведён пример добавления записи в журнал изменений:
Данное событие будет вызываться только при использовании события OnSave, и следовательно будет работать только в случае, когда используются временные таблицы.