EventHandler:OnAfterCopyToTemp
From In-Portal Developers Guide
Path to article:
(→Ограничения: внутренние ссылки) |
Current revision (16:14, 28 February 2009) (view source) m (1 версия) |
Current revision
| ||
---|---|---|
Статьи в этой категории | ||
Данное событие вызывается индивидуально для каждой записи после её копирования из оригинальной таблицы во временную таблицу.
Contents |
Вызывается из событий
Данное событие косвенно (через метод kTempTablesHandler::DoCopyLiveToTemp
) вызывается из события OnEdit в процессе копирования данных из оригинальной таблицы во временную.
Входные параметры
название | описание |
---|---|
id (int) | ID записи в оригинальной таблице.
|
Объекты, которые будут получены из событий, вызываемых из класса kTempTablesHandler никогда не содержат достоверной информации.
|
ID
скопированной записи, то его нужно загружать самому. Это будет показано на ниже приведённом примере.
$object =& $this->Application->recallObject($event->Prefix . '.-item', null, Array ('skip_autoload' => true)); /* @var $object kDBItem */ $object->Load( $event->getEventParam('id') );
Потенциальное применение
Данное событие может применяться при необходимости сделать какие-либо действия с данными во временной таблице. К примеру для выставления флага, что данная запись редактируется, таким образом можно запретить одновременное редактирование одной записи двумя пользователями.
function OnAfterCopyToTemp(&$event) { parent::OnAfterCopyToTemp($event); $sql = 'UPDATE ' . $this->Application->getUnitOption($event->Prefix, 'TableName') . ' SET InEdit = 1 WHERE $this->Application->getUnitOption($event->Prefix, 'IDField') = ' . $event->getEventParam('id'); $this->Conn->Query($sql); }
Ограничения
Данное событие будет вызываться только при использовании события OnEdit, и следовательно будет работать только в случае, когда используются временные таблицы.