/**
  * 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);
 }
Example #2
0
 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));
 }
Example #3
0
 /**
  * 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;
 }
Example #4
0
 /**
  * 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;
 }
Example #5
0
 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);
 }
Example #7
0
 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);
 }
Example #9
0
 /**
  * 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();
 }
Example #11
0
 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);
 }
Example #12
0
 public function beforeSave($object)
 {
     if ($object->getOrder()) {
         $object->setOrderId($object->getOrder()->getId());
         $object->setBillingAddressId($object->getOrder()->getBillingAddress()->getId());
     }
     return parent::beforeSave($object);
 }
Example #13
0
 public function beforeSave($object)
 {
     if ($object->getAddress()) {
         $object->setParentId($object->getAddress()->getId())->setStoreId($object->getAddress()->getStoreId());
     }
     parent::beforeSave($object);
     return $this;
 }
Example #14
0
 public function beforeSave($object)
 {
     if ($object->getOrder()) {
         $object->setParentId($object->getOrder()->getId());
     }
     parent::beforeSave($object);
     return $this;
 }
Example #15
0
 public function afterSave($object)
 {
     parent::afterSave($object);
     $object->getAddressesCollection()->save();
     $object->getItemsCollection()->save();
     $object->getPaymentsCollection()->save();
     return $this;
 }
Example #16
0
 /**
  * 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);
 }
Example #17
0
 /**
  * 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;
 }
Example #18
0
 /**
  * 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);
 }
Example #20
0
 public function validate($object)
 {
     if ($password = $object->getPassword()) {
         if ($password == $object->getPasswordConfirm()) {
             return true;
         }
     }
     return parent::validate($object);
 }
Example #21
0
 /**
  * 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);
 }
Example #22
0
 /**
  * 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);
 }
Example #23
0
 /**
  * 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);
 }
Example #25
0
 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);
 }
Example #27
0
 /**
  * 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);
 }
Example #28
0
 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);
     }
 }
Example #29
0
 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;
 }