In-Portal Developers Guide

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.

EventHandler:OnAfterItemLoad

From In-Portal Developers Guide

Jump to: navigation, search

Alex (Talk)
(категория)
Next diff →

Revision as of 20:27, 29 October 2008

События, которые изменяют данные События, которые изменяют данные
Статьи в этой категории

Данное событие позволяет выполнить дополнительные действия после успешной загрузки объекта из базы данных.

Contents

Вызывается из событий

Данное событие косвенно вызывается из события OnItemBuild в тот момент, когда объект автоматически загружается по ID, переданному в запросе от пользователя. Также оно вызывается из метода kDBItem::Load. Более детально это продемонстрировано ниже:

OnItemBuild -> kDBEventHandler::LoadItem -> kDBItem::Load -> kDBItem::raiseEvent

Входные параметры

название описание
id (int) ID той записи, которая была успешно загружена из базы данных. Если в методе уже используется загруженный объект, то лучше получить ID прямо у него:
$object =& $event->getObject();
/* @var $object kDBItem */
 
$id = $object->GetID();

Потенциальное применение

Данное событие можно использовать для установки значений виртуальных полей объекта на основании его реальных полей. Это будет показано на ниже приведённом примере.

function OnAfterItemLoad(&$event)
{
	parent::OnAfterItemLoad($event);
 
	$object =& $event->getObject();
	/* @var $object kDBItem */
 
	$area = $object->GetDBField('Width') * $object->GetDBField('Height');
	$object->SetDBField('Area', $area);
}

Ограничения

Данное событие вызывается только после успешной загрузки объекта из базы данных.