protected function _afterLoad(Mage_Core_Model_Abstract $object)
 {
     if ($object->getStoreIds()) {
         $object->setStoreIds(explode(',', $object->getStoreIds()));
     } else {
         $object->setStoreIds(array(0));
     }
     return parent::_afterLoad($object);
 }
Пример #2
0
 protected function _beforeSave(Mage_Core_Model_Abstract $object)
 {
     if (is_array($object->getStoreIds())) {
         $object->setStoreIds(implode(',', $object->getStoreIds()));
     }
     if (is_array($object->getCustomerGroups())) {
         $object->setCustomerGroups(implode(',', $object->getCustomerGroups()));
     }
 }
Пример #3
0
 /**
  * @param Mage_Core_Model_Abstract $object
  *
  * @return $this|Mage_Core_Model_Resource_Db_Abstract
  */
 protected function _afterLoad(Mage_Core_Model_Abstract $object)
 {
     if (strlen($object->getStoreIds()) > 0) {
         $object->setStoreIds(array_map('intval', explode(',', $object->getStoreIds())));
     } else {
         $object->setStoreIds(array());
     }
     return parent::_afterLoad($object);
 }
Пример #4
0
 protected function _syncStore(Mage_Core_Model_Abstract $object)
 {
     $collection = Mage::getModel('menu/item')->getCollection()->addFieldToFilter('menu_id', $object->getId());
     foreach ($collection as $item) {
         $item->setStoreIds($object->getStoreIds())->save();
     }
 }
Пример #5
0
 protected function _afterLoad(Mage_Core_Model_Abstract $object)
 {
     $productIds = '';
     if ($object->getId()) {
         if (!is_array($object->getStoreIds())) {
             $object->setStoreIds(explode(',', $object->getStoreIds()));
         }
         $groups = $object->getCustomerGroups();
         if ($groups) {
             $object->setCustomerGroups(explode(',', $groups));
         }
         $product = Mage::getResourceSingleton('downloads/relation')->getProductIds($object->getId());
         if ($product) {
             $productIds = implode(',', $product);
         }
         $object->setInProducts($productIds);
     }
     return parent::_afterLoad($object);
 }
Пример #6
0
 public function _afterSave(Mage_Core_Model_Abstract $object)
 {
     /** stores */
     $deleteWhere = $this->_getWriteAdapter()->quoteInto('poll_id = ?', $object->getId());
     $this->_getWriteAdapter()->delete($this->getTable('poll/poll_store'), $deleteWhere);
     foreach ($object->getStoreIds() as $storeId) {
         $pollStoreData = array('poll_id' => $object->getId(), 'store_id' => $storeId);
         $this->_getWriteAdapter()->insert($this->getTable('poll/poll_store'), $pollStoreData);
     }
     /** answers */
     foreach ($object->getAnswers() as $answer) {
         $answer->setPollId($object->getId());
         $answer->save();
     }
 }
 /**
  * Sets indexer metadata for product entities
  *
  * @param Mage_Core_Model_Abstract $product
  * @return array
  */
 public function getData(Mage_Core_Model_Abstract $product)
 {
     $data = array();
     $data['entity_id'] = $product->getEntityId();
     $data['type_id'] = $product->getTypeId();
     $data['store_id'] = $product->getStoreId();
     $data['store_ids'] = $product->getStoreIds();
     $data['name_suggest'] = $this->_prepareNameSuggestField($product);
     $data['name_suggest_static'] = $product->getNameSuggestInputIndexValue();
     return $data;
 }
 /**
  * Set store data after saving model
  *
  * @param Mage_Core_Model_Abstract $object
  * @return $this
  */
 protected function _afterSave(Mage_Core_Model_Abstract $object)
 {
     if ($object->getId()) {
         $oldStores = $this->lookupStoreIds($object->getId());
         $newStores = (array) $object->getStoreIds();
         if (empty($newStores)) {
             $newStores = (array) $object->getStoreId();
         }
         $table = $this->getStoreTable();
         $insert = array_diff($newStores, $oldStores);
         $delete = array_diff($oldStores, $newStores);
         if ($delete) {
             $this->_getWriteAdapter()->delete($table, array($this->getIdFieldName() . ' = ?' => (int) $object->getId(), 'store_id IN (?)' => $delete));
         }
         if ($insert) {
             $data = array();
             foreach ($insert as $storeId) {
                 $data[] = array($this->getIdFieldName() => (int) $object->getId(), 'store_id' => (int) $storeId);
             }
             $this->_getWriteAdapter()->insertMultiple($table, $data);
         }
         if (!$object->getSkipReindex()) {
             $object->getResource()->reindexAll();
         }
     }
 }
 /**
  * Delete current manufacturer from the table zeon_manufacturer_store and then
  * insert to update "manufacturer to store" relations
  *
  * @param Mage_Core_Model_Abstract $object
  */
 public function saveManufacturerStore(Mage_Core_Model_Abstract $object)
 {
     /** stores */
     $deleteWhere = $this->_getReadAdapter()->quoteInto('manufacturer_id = ?', $object->getId());
     $this->_getReadAdapter()->delete($this->getTable('zeon_manufacturer/store'), $deleteWhere);
     foreach ($object->getStoreIds() as $storeId) {
         $manufacturerStoreData = array('manufacturer_id' => $object->getId(), 'store_id' => $storeId);
         $this->_getWriteAdapter()->insert($this->getTable('zeon_manufacturer/store'), $manufacturerStoreData);
     }
 }
Пример #10
0
 /**
  * After save
  *
  * @param Mage_Core_Model_Abstract $object
  *
  * @return Innoexts_StorePricing_Model_Mysql4_Catalogrule_Rule
  */
 protected function _afterSave(Mage_Core_Model_Abstract $object)
 {
     if ($this->getVersionHelper()->isGe1700()) {
         if ($object->hasStoreIds()) {
             $storeIds = $object->getStoreIds();
             if (!is_array($storeIds)) {
                 $storeIds = explode(',', (string) $storeIds);
             }
             $this->bindRuleToEntity($object->getId(), $storeIds, 'store');
         }
     }
     parent::_afterSave($object);
     return $this;
 }
Пример #11
0
 /**
  * Delete current faq from the table zeon_faq_store and then
  * insert to update "faq to store" relations
  *
  * @param Mage_Core_Model_Abstract $object
  */
 public function saveFaqStore(Mage_Core_Model_Abstract $object)
 {
     /** stores */
     $deleteWhere = $this->_getReadAdapter()->quoteInto('faq_id = ?', $object->getId());
     $this->_getReadAdapter()->delete($this->getTable('zeon_faq/store'), $deleteWhere);
     foreach ($object->getStoreIds() as $storeId) {
         $faqStoreData = array('faq_id' => $object->getId(), 'store_id' => $storeId);
         $this->_getWriteAdapter()->insert($this->getTable('zeon_faq/store'), $faqStoreData);
         if ($storeId === '0') {
             break;
         }
     }
 }