Exemplo n.º 1
0
 /**
  * @param Goodahead_Etm_Model_Attribute|Mage_Core_Model_Abstract $object
  * @return Mage_Eav_Model_Resource_Entity_Attribute|void
  */
 protected function _afterSave(Mage_Core_Model_Abstract $object)
 {
     parent::_afterSave($object);
     $tableName = $this->getTable('goodahead_etm/eav_attribute');
     $this->_getWriteAdapter()->insertOnDuplicate($tableName, $this->_prepareDataForTable($object, $tableName));
 }
Exemplo n.º 2
0
 /**
  * Save attribute/form relations after attribute save
  *
  * @param Mage_Core_Model_Abstract $object
  * @return Mage_Customer_Model_Entity_Attribute
  */
 protected function _afterSave(Mage_Core_Model_Abstract $object)
 {
     $forms = $object->getData('used_in_forms');
     if (is_array($forms)) {
         $where = array('attribute_id=?' => $object->getId());
         $this->_getWriteAdapter()->delete($this->getTable('customer/form_attribute'), $where);
         $data = array();
         foreach ($forms as $formCode) {
             $data[] = array('form_code' => $formCode, 'attribute_id' => intval($object->getId()));
         }
         if ($data) {
             $this->_getWriteAdapter()->insertMultiple($this->getTable('customer/form_attribute'), $data);
         }
     }
     // update sort order
     if (!$object->isObjectNew() && $object->dataHasChangedFor('sort_order')) {
         $bind = array('sort_order' => $object->getSortOrder());
         $where = $this->_getWriteAdapter()->quoteInto('attribute_id=?', $object->getId());
         $this->_getWriteAdapter()->update($this->getTable('eav/entity_attribute'), $bind, $where);
     }
     // save scope attributes
     $websiteId = $object->getWebsite()->getId();
     if ($websiteId) {
         $table = $this->getTable('customer/eav_attribute_website');
         $describe = $this->_getReadAdapter()->describeTable($table);
         $data = array();
         if (!$object->getScopeWebsiteId() || $object->getScopeWebsiteId() != $websiteId) {
             $data = $this->getScopeValues($object);
         }
         $data['attribute_id'] = $object->getId();
         $data['website_id'] = $websiteId;
         $updateColumns = array();
         foreach (array_keys($describe) as $columnName) {
             if ($columnName != 'attribute_id' && $columnName != 'website_id') {
                 $data[$columnName] = $object->getData('scope_' . $columnName);
                 $updateColumns[] = $columnName;
             }
         }
         $this->_getWriteAdapter()->insertOnDuplicate($table, $data, $updateColumns);
     }
     return parent::_afterSave($object);
 }