/** * Check whether attribute instance (attribute, backend, frontend or source) has method and applicable * * @param Mage_Eav_Model_Entity_Attribute_Abstract|Mage_Eav_Model_Entity_Attribute_Backend_Abstract|Mage_Eav_Model_Entity_Attribute_Frontend_Abstract|Mage_Eav_Model_Entity_Attribute_Source_Abstract $instance * @param string $method * @param array $args array of arguments * @return boolean */ protected function _isCallableAttributeInstance($instance, $method, $args) { if ($instance instanceof Mage_Eav_Model_Entity_Attribute_Backend_Abstract && ($method == 'beforeSave' || ($method = 'afterSave'))) { $attributeCode = $instance->getAttribute()->getAttributeCode(); if (isset($args[0]) && $args[0] instanceof Varien_Object && $args[0]->getData($attributeCode) === false) { return false; } } return parent::_isCallableAttributeInstance($instance, $method, $args); }
public function testGetAffectedFields() { $valueId = 10; $attributeId = 42; $attribute = $this->getMock('Mage_Eav_Model_Entity_Attribute_Abstract', array('getBackendTable', 'isStatic', 'getAttributeId'), array(), '', false); $attribute->expects($this->any())->method('getAttributeId')->will($this->returnValue($attributeId)); $attribute->expects($this->any())->method('isStatic')->will($this->returnValue(false)); $attribute->expects($this->any())->method('getBackendTable')->will($this->returnValue('table')); $this->_model->setAttribute($attribute); $object = new Varien_Object(); $this->_model->setValueId($valueId); $this->assertEquals(array('table' => array(array('value_id' => $valueId, 'attribute_id' => $attributeId))), $this->_model->getAffectedFields($object)); }
/** * Save uploaded file and set its name to entity * * @param Goodahead_Etm_Model_Entity $object * @return void */ public function afterSave($object) { parent::afterSave($object); $value = $object->getData($this->getAttribute()->getName()); if (is_array($value) && !empty($value['delete'])) { $object->setData($this->getAttribute()->getName(), ''); $this->getAttribute()->getEntity()->saveAttribute($object, $this->getAttribute()->getName()); return $this; } $path = Mage::getBaseDir('media') . DS . 'goodahead' . DS . 'etm' . DS . 'images' . DS . $object->getEntityTypeInstance()->getEntityTypeCode() . DS . $this->getAttribute()->getAttributeCode() . DS; try { $uploader = new Varien_File_Uploader($this->getAttribute()->getName()); $uploader->setAllowedExtensions(array('jpg', 'jpeg', 'gif', 'png')); $uploader->setAllowRenameFiles(true); $uploader->setAllowCreateFolders(true); $uploader->setFilesDispersion(true); $uploader->save($path); $object->setData($this->getAttribute()->getName(), $uploader->getUploadedFileName()); $this->getAttribute()->getEntity()->saveAttribute($object, $this->getAttribute()->getName()); } catch (Exception $e) { if ($e->getCode() != Varien_File_Uploader::TMP_NAME_EMPTY) { Mage::logException($e); } /** @TODO ??? */ return $this; } return $this; }
/** * Before save method * * @param Varien_Object $object Object Model * @return FireGento_DynamicCategory_Model_Entity_Attribute_Backend_Rule Self. */ public function beforeSave($object) { parent::beforeSave($object); $attrCode = $this->getAttribute()->getAttributeCode(); $object->setData($attrCode, serialize($object->getData($attrCode))); return $this; }
public function afterSave($object) { if ($object->getOrderItem()) { $object->getOrderItem()->save(); } return parent::beforeSave($object); }
/** * Performed before data is saved * * @param Varieb_Object $object * @return Mage_Eav_Model_Entity_Attribute_Backend_Abstract */ public function beforeSave($object) { if ($object->getShipment()) { $object->setParentId($object->getShipment()->getId()); } return parent::beforeSave($object); }
public function afterSave($object) { parent::afterSave($object); $object->getItemsCollection()->save(); $object->getShippingRatesCollection()->save(); return $this; }
/** * Before save method * * @param Varien_Object $object * @return Mage_Eav_Model_Entity_Attribute_Backend_Abstract */ public function beforeSave($object) { $attributeCode = $this->getAttribute()->getAttributeCode(); $attributeValue = $object->getData($attributeCode); $delimiter = Glace_Menumobile_Block_Category_Attribute_Helper_Dropdown_Blocks::DELIMITER; $maxBlocks = Glace_Menumobile_Block_Category_Attribute_Helper_Dropdown_Blocks::MAX_BLOCKS; if ($attributeValue) { //To make parsing simpler, replace value with empty string if all blocks are empty $exploded = explode($delimiter, $attributeValue); $allBlocksAreEmpty = TRUE; for ($i = 0; $i < $maxBlocks; $i++) { if (isset($exploded[$i])) { if (trim($exploded[$i])) { //Block is not empty after trimming $allBlocksAreEmpty = FALSE; break; } } } if ($allBlocksAreEmpty) { $object->setData($attributeCode, ''); //Set empty value } } return parent::beforeSave($object); }
/** * Method is invoked before save * * @param Varien_Object $object * @return Mage_Eav_Model_Entity_Attribute_Backend_Abstract */ public function beforeSave($object) { if ($object->getCreditmemo()) { $object->setParentId($object->getCreditmemo()->getId()); } return parent::beforeSave($object); }
/** * Get attribute instance * * @return Mage_Eav_Model_Entity_Attribute_Abstract */ public function getAttribute() { if (is_null($this->_attribute)) { $attribute = Mage::getModel('eav/entity_attribute')->loadByCode('catalog_category', 'virtual_category'); $this->setAttribute($attribute); } return parent::getAttribute(); }
public function beforeSave($object) { $data = $object->getData($this->getAttribute()->getAttributeCode()); if (is_array($data)) { $object->setData($this->getAttribute()->getAttributeCode(), implode(',', $data)); } return parent::beforeSave($object); }
public function beforeSave($object) { if ($object->getOrder()) { $object->setOrderId($object->getOrder()->getId()); $object->setBillingAddressId($object->getOrder()->getBillingAddress()->getId()); } return parent::beforeSave($object); }
public function beforeSave($object) { if ($object->getAddress()) { $object->setParentId($object->getAddress()->getId())->setStoreId($object->getAddress()->getStoreId()); } parent::beforeSave($object); return $this; }
public function beforeSave($object) { if ($object->getOrder()) { $object->setParentId($object->getOrder()->getId()); } parent::beforeSave($object); return $this; }
public function afterSave($object) { parent::afterSave($object); $object->getAddressesCollection()->save(); $object->getItemsCollection()->save(); $object->getPaymentsCollection()->save(); return $this; }
/** * Validate SKU * * @param Mage_Catalog_Model_Product $object * @throws Mage_Core_Exception * @return bool */ public function validate($object) { $helper = Mage::helper('core/string'); if ($helper->strlen($object->getSku()) > self::SKU_MAX_LENGTH) { Mage::throwException(Mage::helper('catalog')->__('SKU length should be %s characters maximum.', self::SKU_MAX_LENGTH)); } return parent::validate($object); }
/** * Convert create date from UTC to current store time zone * * @param Varien_Object $object * @return Mage_Eav_Model_Entity_Attribute_Backend_Time_Created */ public function afterLoad($object) { $attributeCode = $this->getAttribute()->getAttributeCode(); $date = $object->getData($attributeCode); $zendDate = Mage::app()->getLocale()->storeDate(null, $date, true); $object->setData($attributeCode, $zendDate->getIso()); parent::afterLoad($object); return $this; }
/** * Implode data for validation * * @param Mage_Catalog_Model_Product $object * @return bool */ public function validate($object) { $attributeCode = $this->getAttribute()->getAttributeCode(); $data = $object->getData($attributeCode); if (is_array($data)) { $object->setData($attributeCode, implode(',', array_filter($data))); } return parent::validate($object); }
public function afterLoad($object) { $attributeCode = $this->getAttribute()->getAttributeCode(); $data = $object->getData($attributeCode); if (!is_array($data)) { $object->setData($attributeCode, @unserialize($data)); } return parent::afterLoad($object); }
public function validate($object) { if ($password = $object->getPassword()) { if ($password == $object->getPasswordConfirm()) { return true; } } return parent::validate($object); }
/** * Prepare data for save * * @param Varien_Object $object * @return Mage_Eav_Model_Entity_Attribute_Backend_Abstract */ public function beforeSave($object) { $attributeCode = $this->getAttribute()->getAttributeCode(); $data = $object->getData($attributeCode); if (is_array($data)) { $data = array_filter($data); $object->setData($attributeCode, implode(',', $data)); } return parent::beforeSave($object); }
/** * Prepare data for save * * @param Varien_Object $object * @return Mage_Eav_Model_Entity_Attribute_Backend_Abstract */ public function beforeSave($object) { $attributeCode = $this->getAttribute()->getAttributeCode(); $data = $object->getData($attributeCode); if ($data instanceof Varien_Object) { $data = get_class($data) . '|' . json_encode($data->getData()); } $object->setData($attributeCode, $data); return parent::beforeSave($object); }
/** * Prepare inventory data from custom atribute * * @param Varien_Object $object * @return Mage_Eav_Model_Entity_Attribute_Backend_Abstract|void */ public function beforeSave($object) { /** @var $object Mage_Catalog_Model_Product */ $stockData = $object->getData($this->getAttribute()->getAttributeCode()); if ($object->getStockData() !== null || $stockData !== null) { $object->setStockData(array_replace((array) $object->getStockData(), (array) $stockData)); } $object->unsetData($this->getAttribute()->getAttributeCode()); parent::beforeSave($object); }
/** * Decrypts the value after load * * @param Mage_Core_Model_Abstract $object Object * @return Itabs_Debit_Model_Entity_Customer_Attribute_Backend_Encrypted */ public function afterLoad($object) { $helper = Mage::helper('core'); $attributeName = $this->getAttribute()->getName(); if ($object->getData($attributeName) != '') { $value = $helper->decrypt($object->getData($attributeName)); $object->setData($attributeName, $value); } return parent::afterLoad($object); }
public function afterLoad($object) { $attributeCode = $this->getAttribute()->getName(); if ($attributeCode == self::ATTRIBUTE_CODE) { $data = $object->getData($attributeCode); if (!is_array($data)) { $object->setData($attributeCode, explode(',', $data)); } } parent::afterLoad($object); }
/** * Validate object * * @param Varien_Object $object * @throws Mage_Eav_Exception * @return boolean */ public function validate($object) { $pattern = '#^(\\d+)?\\-\\d+;(\\d+\\-\\d+;)*\\d+\\-(\\d+)?$#'; $value = $object->getFilterPriceRanges(); if ('' != $value && !preg_match($pattern, $value)) { $message = "Provided Layered Navigation Price Ranges are incorrect."; $message = Mage::helper('aurmil_customizepricefilter')->__($message); Mage::throwException($message); } return parent::validate($object); }
/** * Prepare inventory data from custom attribute * * @param Mage_Catalog_Model_Product $object * @return Mage_Eav_Model_Entity_Attribute_Backend_Abstract|void */ public function beforeSave($object) { $stockData = $object->getData($this->getAttribute()->getAttributeCode()); if (isset($stockData['qty']) && $stockData['qty'] === '') { $stockData['qty'] = null; } if ($object->getStockData() !== null || $stockData !== null) { $object->setStockData(array_replace((array) $object->getStockData(), (array) $stockData)); } $object->unsetData($this->getAttribute()->getAttributeCode()); parent::beforeSave($object); }
public function afterLoad($object) { parent::afterLoad($object); if (!$this->_isEnabled()) { return; } $attrCode = $this->getAttribute()->getAttributeCode(); $defValue = $this->getDefaultValue(); if (!$object->getData($attrCode) && $defValue) { $object->setData($attrCode, $defValue); } }
public function beforeSave($object) { $attrCode = $this->getAttribute()->getAttributeCode(); if ($object->hasData($attrCode)) { $value = trim($object->getData($attrCode)); if ('' !== $value) { if (!preg_match('#^(?:http|https|ftp)://[a-z][a-z.]*\\.[a-z]+#', $value)) { throw new RuntimeException($this->getHelper()->__('Please specify a full URL including http://, https:// or ftp:// for for the attribute "%s"', $this->getAttribute()->getFrontendLabel())); //Mage::throwException($this->getHelper()->__('Please specify a full URL.')); } } } return parent::beforeSave($object); }
public function afterSave($object) { parent::afterSave($object); /** * Save creditmemo items */ foreach ($object->getAllItems() as $item) { $item->save(); } foreach ($object->getCommentsCollection() as $comment) { $comment->save(); } return $this; }