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> |