private:koding:hostcms:modules:shop:elements:propvaluemodlikeitem

Значения дополнительных свойств для модификаций устанавливать как для товаров

<?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);
					}
				}
			}
		}
	}
}
private/koding/hostcms/modules/shop/elements/propvaluemodlikeitem.txt · Last modified: 27.06.17 в 15:50 by maximzasorin_gmail.com