This is an old revision of the document!
<?php defined('HOSTCMS') || exit('HostCMS: access denied.'); /** * observer. * @author Kozub Boris, KAD Systems (©) 2014 Core_Event::attach('Informationsystem_Item_Controller_Edit.onBeforeExecute', array('Informationsystem_Item_Controller_Observer', 'onBeforeExecute')); */ class Kad_Shop_Item_Observers_Propvaluemodlikeitem { // Добавление чекбокса окну редактирования Shop Item static public function onBeforeExecute($object, $operation) { $_object = $object->getObject(); $modelName = $_object->getModelName(); if($modelName == 'shop_item') { if($_object->modification_id == 0) { $modelName = $_object->getModelName(); $oMainTab = $object->getTab('main'); $oField = Core::factory('Admin_Form_Entity_Checkbox') ->name('modproperties') ->caption("Применить дополнительные свойства для модификаций") ->checked(true) ; $oSeparatorField = new Admin_Form_Entity_Separator(); $oMainTab->addAfter($oField, $oMainTab->getField('price')); $oMainTab->addAfter($oSeparatorField, $oMainTab->getField('price')); } } } // Добавление доп. свойств основного товара к его модификациям если чекбокс чекнут static public function onAfterApplyObjectProperty($object, $operation) { // Массив с ID доп. свойств, которые нужно добавить для модификаций товара $aPropertiesId = array(67, 68, 154, 172); if(Core_Array::getPost('modproperties')) { foreach($aPropertiesId as $propertyId) { //echo $propertyId . "<br/>"; $_object = $object->getObject(); $oProperty = Kad_Property::getValue($_object, $propertyId); if($oProperty) { $aoMods = Core_Entity::factory('Shop_Item')->getAllByModification_Id($_object->id); foreach($aoMods as $oMod) { //echo $oProperty->value . "<br/>"; $oModProperty = Kad_Property::setValue($oMod, $propertyId, $oProperty->value); } } } } } }