protected function _afterLoad(Mage_Core_Model_Abstract $object) { if ($object->getData('mapping_serialized')) { $object->setMapping(unserialize($object->getData('mapping_serialized'))); } return parent::_afterLoad($object); }
/** * Perform actions after object save * * @param Mage_Widget_Model_Widget_Instance $object * @return Mage_Widget_Model_Mysql4_Widget_Instance */ protected function _afterSave(Mage_Core_Model_Abstract $object) { $pageTable = $this->getTable('widget/widget_instance_page'); $pageLayoutTable = $this->getTable('widget/widget_instance_page_layout'); $layoutUpdateTable = $this->getTable('core/layout_update'); $layoutLinkTable = $this->getTable('core/layout_link'); $write = $this->_getWriteAdapter(); $select = $write->select()->from($pageTable, array('page_id'))->where('instance_id = ?', $object->getId()); $pageIds = $write->fetchCol($select); $removePageIds = array_diff($pageIds, $object->getData('page_group_ids')); $select = $write->select()->from($pageLayoutTable, array('layout_update_id'))->where('page_id in (?)', $pageIds); $removeLayoutUpdateIds = $write->fetchCol($select); $this->_deleteWidgetInstancePages($removePageIds); $write->delete($pageLayoutTable, $write->quoteInto('page_id in (?)', $pageIds)); $this->_deleteLayoutUpdates($removeLayoutUpdateIds); foreach ($object->getData('page_groups') as $pageGroup) { $pageLayoutUpdateIds = $this->_saveLayoutUpdates($object, $pageGroup); $data = array('group' => $pageGroup['group'], 'layout_handle' => $pageGroup['layout_handle'], 'block_reference' => $pageGroup['block_reference'], 'for' => $pageGroup['for'], 'entities' => $pageGroup['entities'], 'template' => $pageGroup['template']); $pageId = $pageGroup['page_id']; if (in_array($pageGroup['page_id'], $pageIds)) { $write->update($pageTable, $data, $write->quoteInto('page_id = ?', $pageId)); } else { $write->insert($pageTable, array_merge(array('instance_id' => $object->getId()), $data)); $pageId = $write->lastInsertId(); } foreach ($pageLayoutUpdateIds as $layoutUpdateId) { $write->insert($pageLayoutTable, array('page_id' => $pageId, 'layout_update_id' => $layoutUpdateId)); } } return parent::_afterSave($object); }
/** * * @param Mage_Core_Model_Abstract $object */ protected function _afterSave(Mage_Core_Model_Abstract $object) { $condition = $this->_getWriteAdapter()->quoteInto('slider_id = ?', $object->getId()); // Stores $this->_getWriteAdapter()->delete($this->getTable('auguria_sliders/stores'), $condition); foreach ((array) $object->getData('stores') as $store) { $storeArray = array(); $storeArray['slider_id'] = $object->getId(); $storeArray['store_id'] = $store; $this->_getWriteAdapter()->insert($this->getTable('auguria_sliders/stores'), $storeArray); } // Cms pages $this->_getWriteAdapter()->delete($this->getTable('auguria_sliders/pages'), $condition); foreach ((array) $object->getData('pages') as $page) { $pageArray = array(); $pageArray['slider_id'] = $object->getId(); $pageArray['page_id'] = $page; $this->_getWriteAdapter()->insert($this->getTable('auguria_sliders/pages'), $pageArray); } // Category ids $this->_getWriteAdapter()->delete($this->getTable('auguria_sliders/categories'), $condition); foreach ((array) $object->getData('category_ids') as $category) { $categoryArray = array(); $categoryArray['slider_id'] = $object->getId(); $categoryArray['category_id'] = $category; $this->_getWriteAdapter()->insert($this->getTable('auguria_sliders/categories'), $categoryArray); } return parent::_afterSave($object); }
/** * Lookup for parent_id in already saved transactions of this payment by the order_id * Also serialize additional information, if any * * @param Mage_Sales_Model_Order_Payment_Transaction $transaction * @return Mage_Sales_Model_Mysql4_Order_Payment_Transaction * @throws Mage_Core_Exception */ protected function _beforeSave(Mage_Core_Model_Abstract $transaction) { $parentTxnId = $transaction->getData('parent_txn_id'); $txnId = $transaction->getData('txn_id'); $orderId = $transaction->getData('order_id'); $paymentId = $transaction->getData('payment_id'); $idFieldName = $this->getIdFieldName(); if ($parentTxnId) { if (!$txnId || !$orderId || !$paymentId) { Mage::throwException(Mage::helper('sales')->__('Not enough valid data to save parent transaction ID.')); } $parentId = (int) $this->_lookupByTxnId($orderId, $paymentId, $parentTxnId, $idFieldName); if ($parentId) { $transaction->setData('parent_id', $parentId); } } // make sure unique key won't cause trouble if ($transaction->isFailsafe()) { $autoincrementId = (int) $this->_lookupByTxnId($orderId, $paymentId, $txnId, $idFieldName); if ($autoincrementId) { $transaction->setData($idFieldName, $autoincrementId); } } // serialize or set additional information to null $additionalInformation = $transaction->getData('additional_information'); if (empty($additionalInformation)) { $transaction->setData('additional_information', null); } elseif (is_array($additionalInformation)) { $transaction->setData('additional_information', serialize($additionalInformation)); } return parent::_beforeSave($transaction); }
/** * Save titles * * @param Mage_Core_Model_Abstract $object * @return Mage_Catalog_Model_Resource_Product_Option */ protected function _saveValueTitles(Mage_Core_Model_Abstract $object) { $readAdapter = $this->_getReadAdapter(); $writeAdapter = $this->_getWriteAdapter(); $titleTable = $this->getTable('catalog/product_option_title'); //title if (!$object->getData('scope', 'title')) { $statement = $readAdapter->select()->from($titleTable)->where('option_id = ?', $object->getId())->where('store_id = ?', Mage_Catalog_Model_Abstract::DEFAULT_STORE_ID); if ($readAdapter->fetchOne($statement)) { if ($object->getStoreId() == '0') { $data = $this->_prepareDataForTable(new Varien_Object(array('title' => $object->getTitle(), 'class' => $object->getClass())), $titleTable); $writeAdapter->update($titleTable, $data, array('option_id = ?' => $object->getId(), 'store_id = ?' => Mage_Catalog_Model_Abstract::DEFAULT_STORE_ID)); } } else { $data = $this->_prepareDataForTable(new Varien_Object(array('option_id' => $object->getId(), 'store_id' => Mage_Catalog_Model_Abstract::DEFAULT_STORE_ID, 'title' => $object->getTitle(), 'class' => $object->getClass())), $titleTable); $writeAdapter->insert($titleTable, $data); } } if ($object->getStoreId() != '0' && !$object->getData('scope', 'title')) { $statement = $readAdapter->select()->from($titleTable)->where('option_id = ?', $object->getId())->where('store_id = ?', $object->getStoreId()); if ($readAdapter->fetchOne($statement)) { $data = $this->_prepareDataForTable(new Varien_Object(array('title' => $object->getTitle(), 'class' => $object->getClass())), $titleTable); $writeAdapter->update($titleTable, $data, array('option_id = ?' => $object->getId(), 'store_id = ?' => $object->getStoreId())); } else { $data = $this->_prepareDataForTable(new Varien_Object(array('option_id' => $object->getId(), 'store_id' => $object->getStoreId(), 'title' => $object->getTitle(), 'class' => $object->getClass())), $titleTable); $writeAdapter->insert($titleTable, $data); } } elseif ($object->getData('scope', 'title')) { $writeAdapter->delete($titleTable, array('option_id = ?' => $object->getId(), 'store_id = ?' => $object->getStoreId())); } }
protected function _afterSave(Mage_Core_Model_Abstract $object) { if ($object->getOrigData('magento_order_id') != $object->getData('magento_order_id') && !is_null($object->getData('magento_order_id'))) { $this->_getWriteAdapter()->update(Mage::getResourceModel('M2ePro/Order_Item')->getMainTable(), array('state' => Ess_M2ePro_Model_Order_Item::STATE_NORMAL), array('order_id = ?' => $object->getId())); } return parent::_afterSave($object); }
protected function _afterSave(Mage_Core_Model_Abstract $object) { $descriptionTable = $this->getTable('customoptiondescription/product_option_description'); if (!$object->getData('scope', 'description')) { $statement = $this->_getReadAdapter()->select()->from($descriptionTable)->where('option_id = ' . $object->getId() . ' and store_id = ?', 0); if ($this->_getReadAdapter()->fetchOne($statement)) { if ($object->getStoreId() == '0') { $this->_getWriteAdapter()->update($descriptionTable, array('description' => $object->getDescription()), $this->_getWriteAdapter()->quoteInto('option_id=' . $object->getId() . ' AND store_id=?', 0)); } } else { $this->_getWriteAdapter()->insert($descriptionTable, array('option_id' => $object->getId(), 'store_id' => 0, 'description' => $object->getDescription())); } } if ($object->getStoreId() != '0' && !$object->getData('scope', 'description')) { $statement = $this->_getReadAdapter()->select()->from($descriptionTable)->where('option_id = ' . $object->getId() . ' and store_id = ?', $object->getStoreId()); if ($this->_getReadAdapter()->fetchOne($statement)) { $this->_getWriteAdapter()->update($descriptionTable, array('description' => $object->getDescription()), $this->_getWriteAdapter()->quoteInto('option_id=' . $object->getId() . ' AND store_id=?', $object->getStoreId())); } else { $this->_getWriteAdapter()->insert($descriptionTable, array('option_id' => $object->getId(), 'store_id' => $object->getStoreId(), 'description' => $object->getDescription())); } } elseif ($object->getData('scope', 'description')) { $this->_getWriteAdapter()->delete($descriptionTable, $this->_getWriteAdapter()->quoteInto('option_id = ' . $object->getId() . ' AND store_id = ?', $object->getStoreId())); } return parent::_afterSave($object); }
/** * Check for unique of identifier of manufacturer(s) to selected store(s). * * @param Mage_Core_Model_Abstract $object * @return bool */ public function getIsUniqueManufacturerToStores(Mage_Core_Model_Abstract $object) { if (Mage::app()->isSingleStoreMode() || !$object->hasData('store_ids')) { $stores = array(Mage_Core_Model_App::ADMIN_STORE_ID); } else { $stores = (array) $object->getData('store_ids'); } $selectId = $this->_getCommanManufacturer($object->getData('manufacturer'), $stores); $fetchedSelectId = $this->_getWriteAdapter()->fetchRow($selectId); if (!$object['manufacturer_id']) { if ($fetchedSelectId['manufacturer_id']) { return false; } } elseif ($object['manufacturer'] == $fetchedSelectId['manufacturer'] && $object['manufacturer_id'] != $fetchedSelectId['manufacturer_id']) { return false; } $select = $this->_getLoadByIdentifierSelect($object->getData('identifier'), $stores); if ($object->getId()) { $select->where('mps.manufacturer_id <> ?', $object->getId()); } if ($this->_getWriteAdapter()->fetchRow($select)) { return false; } return true; }
protected function _afterSave(Mage_Core_Model_Abstract $object) { $writeAdapter = $this->_getWriteAdapter(); $condition = $writeAdapter->quoteInto("post_id = ?", $object->getId()); $writeAdapter->delete($this->getTable("store"), $condition); if ($object->getData("stores")) { foreach ((array) $object->getData("stores") as $store) { $storeArray = array(); $storeArray["post_id"] = $object->getId(); $storeArray["store_id"] = $store; $writeAdapter->insert($this->getTable("store"), $storeArray); } } else { $storeArray = array(); $storeArray["post_id"] = $object->getId(); $storeArray["store_id"] = Mage::app()->getStore(true)->getId(); $writeAdapter->insert($this->getTable("store"), $storeArray); } $condition = $writeAdapter->quoteInto("post_id = ?", $object->getId()); $writeAdapter->delete($this->getTable("post_cat"), $condition); foreach ((array) $object->getData("cats") as $catId) { $storeArray = array(); $storeArray["post_id"] = $object->getId(); $storeArray["cat_id"] = $catId; $writeAdapter->insert($this->getTable("post_cat"), $storeArray); } return parent::_afterSave($object); }
/** * Perform actions after object save * * @param Mage_Widget_Model_Widget_Instance $object * @return Mage_Widget_Model_Resource_Widget_Instance */ protected function _afterSave(Mage_Core_Model_Abstract $object) { $pageTable = $this->getTable('widget/widget_instance_page'); $pageLayoutTable = $this->getTable('widget/widget_instance_page_layout'); $readAdapter = $this->_getReadAdapter(); $writeAdapter = $this->_getWriteAdapter(); $select = $readAdapter->select()->from($pageTable, 'page_id')->where('instance_id = ?', (int) $object->getId()); $pageIds = $readAdapter->fetchCol($select); $removePageIds = array_diff($pageIds, $object->getData('page_group_ids')); if (is_array($pageIds) && count($pageIds) > 0) { $inCond = $readAdapter->prepareSqlCondition('page_id', array('in' => $pageIds)); $select = $readAdapter->select()->from($pageLayoutTable, 'layout_update_id')->where($inCond); $removeLayoutUpdateIds = $readAdapter->fetchCol($select); $writeAdapter->delete($pageLayoutTable, $inCond); $this->_deleteLayoutUpdates($removeLayoutUpdateIds); } $this->_deleteWidgetInstancePages($removePageIds); foreach ($object->getData('page_groups') as $pageGroup) { $pageLayoutUpdateIds = $this->_saveLayoutUpdates($object, $pageGroup); $data = array('page_group' => $pageGroup['group'], 'layout_handle' => $pageGroup['layout_handle'], 'block_reference' => $pageGroup['block_reference'], 'page_for' => $pageGroup['for'], 'entities' => $pageGroup['entities'], 'page_template' => $pageGroup['template']); $pageId = $pageGroup['page_id']; if (in_array($pageGroup['page_id'], $pageIds)) { $writeAdapter->update($pageTable, $data, array('page_id = ?' => (int) $pageId)); } else { $writeAdapter->insert($pageTable, array_merge(array('instance_id' => $object->getId()), $data)); $pageId = $writeAdapter->lastInsertId($pageTable); } foreach ($pageLayoutUpdateIds as $layoutUpdateId) { $writeAdapter->insert($pageLayoutTable, array('page_id' => $pageId, 'layout_update_id' => $layoutUpdateId)); } } return parent::_afterSave($object); }
protected function _beforeSave(Mage_Core_Model_Abstract $object) { $object->validate(); $object->setUpdatedAt(Mage::getSingleton('core/date')->gmtDate()); if ($object->getAttributes() && is_array($object->getAttributes())) { $object->setAttributesSerialized(serialize($object->getAttributes())); } if ($object->getProperties() && is_array($object->getProperties())) { $object->setPropertiesSerialized(serialize($object->getProperties())); } if ($object->getData('attributes_serialized') != $object->getOrigData('attributes_serialized')) { $object->setStatus(2); } if ($object->getData('properties_serialized') != $object->getOrigData('properties_serialized')) { $object->setStatus(2); } if (!$object->getId() && !$object->getIndexInstance()->isAllowMultiInstance()) { //check if this index already exists $collection = Mage::getModel('searchindex/index')->getCollection()->addFieldToFilter('index_code', $object->getIndexCode()); if ($collection->count() > 0) { Mage::throwException('The index for current content type already exists'); } } return parent::_beforeSave($object); }
protected function _afterSave(Mage_Core_Model_Abstract $object) { $condition = $this->_getWriteAdapter()->quoteInto('news_id = ?', $object->getId()); $this->_getWriteAdapter()->delete($this->getTable('news_store'), $condition); if (count($object->getData('stores')) && !in_array(0, (array) $object->getData('stores'))) { foreach ((array) $object->getData('stores') as $store) { $data = array(); $data['news_id'] = $object->getId(); $data['store_id'] = $store; $this->_getWriteAdapter()->insert($this->getTable('news_store'), $data); } } else { $data = array(); $data['news_id'] = $object->getId(); $data['store_id'] = '0'; $this->_getWriteAdapter()->insert($this->getTable('news_store'), $data); } $condition = $this->_getWriteAdapter()->quoteInto('news_id = ?', $object->getId()); $this->_getWriteAdapter()->delete($this->getTable('news_category'), $condition); foreach ((array) $object->getData('categories') as $category) { $data = array(); $data['news_id'] = $object->getId(); $data['category_id'] = $category; $this->_getWriteAdapter()->insert($this->getTable('news_category'), $data); } return parent::_afterSave($object); }
/** * Sets the counter * Overwrites the counter for a certain block id with a new counter array * * @param string $sIdBlock * @param array $aCounter * @return Sitewards_Captcha_Model_CaptchaChecker */ private function setCounter($sIdBlock, $aCounter) { $aCaptchaCheckerSession = $this->oCustomerSession->getData('captchachecker'); $aCaptchaCheckerSession[$sIdBlock] = $aCounter; $this->oCustomerSession->setData('captchachecker', $aCaptchaCheckerSession); return $this; }
protected function _afterSave(Mage_Core_Model_Abstract $object) { $condition = $this->_getWriteAdapter()->quoteInto('post_id = ?', $object->getId()); $this->_getWriteAdapter()->delete($this->getTable('store'), $condition); if (!$object->getData('stores')) { $storeArray = array(); $storeArray['post_id'] = $object->getId(); $storeArray['store_id'] = '0'; $this->_getWriteAdapter()->insert($this->getTable('store'), $storeArray); } else { foreach ((array) $object->getData('stores') as $store) { $storeArray = array(); $storeArray['post_id'] = $object->getId(); $storeArray['store_id'] = $store; $this->_getWriteAdapter()->insert($this->getTable('store'), $storeArray); } } $condition = $this->_getWriteAdapter()->quoteInto('post_id = ?', $object->getId()); $this->_getWriteAdapter()->delete($this->getTable('post_cat'), $condition); foreach ((array) $object->getData('cats') as $store) { $storeArray = array(); $storeArray['post_id'] = $object->getId(); $storeArray['cat_id'] = $store; $this->_getWriteAdapter()->insert($this->getTable('post_cat'), $storeArray); } return parent::_afterSave($object); }
/** * @param Mage_Core_Model_Abstract $object * @return Mage_Core_Model_Resource_Db_Abstract */ protected function _afterLoad(Mage_Core_Model_Abstract $object) { if ($object->getData('additional')) { $object->setData('additional', Mage::helper('core')->jsonDecode($object->getData('additional'))); } return parent::_afterLoad($object); }
protected function _afterLoad(Mage_Core_Model_Abstract $object) { foreach ($this->_serializedAttr as $attrCode) { if (!is_array($object->getData($attrCode))) { $object->setData($attrCode, unserialize($object->getData($attrCode))); } } return $this; }
/** * Decrypts the value after load * * @param Mage_Core_Model_Abstract $object * @return void */ 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); } }
public function insertJoinedDatabase(Mage_Core_Model_Abstract $object) { $adapter = $this->_getWriteAdapter(); $select = $adapter->select()->from($this->getMainTable(), array($this->getIdFieldName()))->where('program_id = ?', $object->getData('program_id'))->where('account_id = ?', $object->getData('account_id')); if ($adapter->fetchOne($select) === false) { $object->setId(null); $this->save($object); } return $this; }
protected function _afterSave(Mage_Core_Model_Abstract $object) { if (!is_null($this->childMode)) { $childData = $object->getData(); $childData[$this->getChildPrimary()] = (int) $object->getData('id'); unset($childData['id'], $childData['create_date'], $childData['update_date']); Mage::getModel($this->getChildModel())->addData($childData)->save(); } return $this; }
protected function _afterLoad(Mage_Core_Model_Abstract $object) { $areas = @unserialize($object->getData('areas_content')); if (is_array($areas)) { $object->setData('areas_content', $areas); } else { $object->setData('areas_content', array('content' => $object->getData('areas_content'))); } return $this; }
protected function _afterLoad(Mage_Core_Model_Abstract $object) { if ($object->getData('segments_codes')) { if (is_string($object->getData('segments_codes'))) { $object->setData('segments_codes', explode(',', $object->getData('segments_codes'))); } } else { $object->setData('segments_codes', array()); } }
protected function _beforeSave(Mage_Core_Model_Abstract $object) { if (is_array($object->getData('value'))) { $object->setData('value_serialized', serialize($object->getData('value'))); } if (is_array($object->getData('target'))) { $object->setData('target_serialized', serialize($object->getData('target'))); } Mage::dispatchEvent('webforms_logic_before_save', array('logic' => $object)); return parent::_beforeSave($object); }
protected function _beforeSave(Mage_Core_Model_Abstract $object) { $currentTimestamp = Mage::helper('M2ePro')->getCurrentGmtDate(); if (is_null($object->getOrigData())) { $object->setData('create_date', $currentTimestamp); $object->setData('synch_date', $currentTimestamp); } $object->setData('update_date', $currentTimestamp); if ($object->getOrigData('synch_date') != $object->getData('synch_date') && $object->getData('synch_date') == $object->getOrigData('update_date')) { $object->setData('synch_date', $object->getData('update_date')); } return $this; }
protected function _afterSave(Mage_Core_Model_Abstract $object) { if ($object->getData('store_ids')) { $object->setData('store_ids', explode(',', $object->getData('store_ids'))); } $deleteWhere = $this->_getWriteAdapter()->quoteInto('deal_id = ?', $object->getId()); $this->_getWriteAdapter()->delete($this->getTable('collpur/rewrite'), $deleteWhere); $storeIds = array_unique(Mage::getModel('core/store')->getCollection()->getAllIds()); foreach ($storeIds as $storeId) { $rewriteInfo = array('deal_id' => $object->getId(), 'store_id' => $storeId, 'identifier' => $this->_getUniqueIdentifier($storeId, $this->_combineIdentifier($object))); $this->_getWriteAdapter()->insert($this->getTable('collpur/rewrite'), $rewriteInfo); } }
protected function _afterLoad(Mage_Core_Model_Abstract $object) { if ($object->getData('segments_cut')) { $object->setData('segments_cut', explode(',', $object->getData('segments_cut'))); } else { $object->setData('segments_cut', array()); } if ($object->getData('segments_paste')) { $object->setData('segments_paste', explode(',', $object->getData('segments_paste'))); } else { $object->setData('segments_paste', array()); } }
/** * Process page data before saving * * @param Mage_Core_Model_Abstract $object */ protected function _afterSave(Mage_Core_Model_Abstract $object) { $condition = $this->_getWriteAdapter()->quoteInto('productattachments_id = ?', $object->getId()); $r = $this->_getReadAdapter()->select('p.block_name_product')->from(array('p' => $this->getTable('productattachments_store')))->where('productattachments_id = (?)', $object->getId())->limit(1); $row = $this->_getReadAdapter()->fetchRow($r); $block_name = ''; if (isset($row['block_name_product'])) { $block_name = $row['block_name_product']; } $this->_getWriteAdapter()->delete($this->getTable('productattachments_store'), $condition); foreach ((array) $object->getData('stores') as $store) { $storeArray = array(); $storeArray['productattachments_id'] = $object->getId(); $storeArray['store_id'] = $store; $this->_getWriteAdapter()->insert($this->getTable('productattachments_store'), $storeArray); } //Get Related Products $links = $object['links']; if (isset($links['related'])) { $productIds = Mage::helper('adminhtml/js')->decodeGridSerializedInput($links['related']); $this->_getWriteAdapter()->delete($this->getTable('productattachments_products'), $condition); //Save Related Products foreach ($productIds as $_product) { $newsArray = array(); $newsArray['productattachments_id'] = $object->getId(); $newsArray['product_id'] = $_product; $newsArray['block_name_product'] = $block_name; $this->_getWriteAdapter()->insert($this->getTable('productattachments_products'), $newsArray); } } return parent::_afterSave($object); }
protected function _beforeSave(Mage_Core_Model_Abstract $object) { if ($object->getData('condition_note') === '') { $object->setData('condition_note', new Zend_Db_Expr("''")); } return $this; }
public function getChildren(Mage_Core_Model_Abstract $object) { /** @var Magpleasure_Common_Model_Resource_Treeview_Collection_Abstract $collection */ $collection = $object->getCollection(); $collection->addFieldToFilter($this->getParentIdField(), $object->getData($this->getParentIdField()))->setOrder($this->getPositionField(), 'ASC'); return $collection; }
/** * @param string $attributeCode * @param Mage_Core_Model_Abstract $object * * @return null|string */ public function extractEavAttributeValue($attributeCode = null, Mage_Core_Model_Abstract $object) { if (!empty($attributeCode) && $object->hasData($attributeCode)) { return $object->getData($attributeCode); } return null; }
/** * Assign page to store views * * @param Mage_Core_Model_Abstract $object */ protected function _afterSave(Mage_Core_Model_Abstract $object) { $condition = $this->_getWriteAdapter()->quoteInto('category_id = ?', $object->getId()); // process faq item to store relation $this->_getWriteAdapter()->delete($this->getTable('ves_blog/category_store'), $condition); $stores = (array) $object->getData('stores'); if ($stores) { foreach ((array) $object->getData('stores') as $store) { $storeArray = array(); $storeArray['category_id'] = $object->getId(); $storeArray['store_id'] = $store; $this->_getWriteAdapter()->insert($this->getTable('ves_blog/category_store'), $storeArray); } } return parent::_afterSave($object); }