Пользователям, работающими через хуки с вкладкой доп. св-в, у Tab-а св-в внутри первым уровням лежат Admin_Form_Entity_Section, а у них уже объекты. Обратите внимание, при создании там имена будут с [], а при редактировании могут быть с [], а для уже сохраненных несколько иначе, в распечатке это видно.
Код обработчика:
class Informationsystem_Item_Observer
{
static public function onBeforeExecute($object, $operation)
{
$siteID = CURRENT_SITE;
$_object = $object->getObject();
$modelName = $_object->getModelName();
$oSeparatorField = new Admin_Form_Entity_Separator();
// Отображение формы, операция NULL
if (is_null($operation[0]) || $operation[0] == '')
{
$oPropTab = $object->getTab('Property');
$aFields = $oPropTab->getFields();
foreach ($aFields as $oField)
{
if (get_class($oField) == 'Admin_Form_Entity_Section')
{
$aChildren = $oField->getChildren();
foreach ($aChildren as $oChildren)
{
if (isset($oChildren->name))
{
echo $oChildren->name;
}
}
}
}
Хук на добавление цены в других валютах в карточке товара:
if ($Shop_Controller_Show->item)
{
class Shop_Item_Observer_Prices
{
static public function onBeforeGetXml($object, $args)
{
$oPrices = Core::factory('Core_Xml_Entity')
->name('prices');
Вы только что начали читать предложение, чтение которого вы уже заканчиваете.
DS Aleks
18 мая 2013 г.
Re: События (хуки)
HostCMS писал(а):
Пример вывода названия документа перед показом версии документа (с версии 6.0.5):
class Document_Version_Observer
{
static public function onBeforeExecute($object, $args)
{
?><h1><?php echo htmlspecialchars($object->Document->name)?></h1><?php
}
}
Вы только что начали читать предложение, чтение которого вы уже заканчиваете.
hostcms
Модератор31 июля 2013 г.
Re: События (хуки)
Ограничение выборки модификаций через хуки:
mostech
19 августа 2013 г.
Re: События (хуки)
Есть задача совершать определённые действия при появлении нового заказа в интернет-магазине. На какое событие лучше повесить обработчик: shop_order.onAfterCreate, shop_order.onAfterAdd, shop_order.onAfterSave или какой-то ещё? И правильно ли я понимаю, что если подписаться на событие shop_order.onAfterUpdate, я буду получать уведомления о любых изменениях в заказах?
alexander.egorov
Модератор20 августа 2013 г.
Re: События (хуки)
mostech писал(а):
На какое событие лучше повесить обработчик
На shop_order.onAfterCreate
mostech писал(а):
И правильно ли я понимаю, что если подписаться на событие shop_order.onAfterUpdate, я буду получать уведомления о любых изменениях в заказах?
Верно.
Вы только что начали читать предложение, чтение которого вы уже заканчиваете.
alexander.egorov
Модератор20 августа 2013 г.
Re: События (хуки)
Хук для поиска только по названию товара:
class Shop_Item_Observer
{
static public function onAfterIndexing($object, $args)
{
$oSearch_Page = $args[0];
$oSearch_Page->text = $object->name;
}
}