This shows you the differences between two versions of the page.
|
koding:hostcms:shop:propvaluemodlikeitem [06.05.15 в 18:38] Артем Куц создано |
— (current) | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | <code><?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); | ||
| - | } | ||
| - | } | ||
| - | } | ||
| - | } | ||
| - | } | ||
| - | }</code> | ||