Ejemplo n.º 1
0
 public function setStores(Mage_Newsletter_Model_Queue $queue)
 {
     $this->_getWriteAdapter()->delete($this->getTable('queue_store_link'), $this->_getWriteAdapter()->quoteInto('queue_id = ?', $queue->getId()));
     if (!is_array($queue->getStores())) {
         $stores = array();
     } else {
         $stores = $queue->getStores();
     }
     foreach ($stores as $storeId) {
         $data = array();
         $data['store_id'] = $storeId;
         $data['queue_id'] = $queue->getId();
         $this->_getWriteAdapter()->insert($this->getTable('queue_store_link'), $data);
     }
     $this->removeSubscribersFromQueue($queue);
     if (count($stores) == 0) {
         return $this;
     }
     $subscribers = Mage::getResourceSingleton('newsletter/subscriber_collection')->addFieldToFilter('store_id', array('in' => $stores))->useOnlySubscribed()->load();
     $subscriberIds = array();
     foreach ($subscribers as $subscriber) {
         $subscriberIds[] = $subscriber->getId();
     }
     if (count($subscriberIds) > 0) {
         $this->addSubscribersToQueue($queue, $subscriberIds);
     }
     return $this;
 }
Ejemplo n.º 2
0
 /**
  * Limit newsletter queue save
  *
  * @param Mage_Newsletter_Model_Queue $model
  */
 public function newsletterQueueSaveBefore($model)
 {
     // force to assign to SV
     $storeIds = $model->getStores();
     if (!$storeIds || !$this->_role->hasStoreAccess($storeIds)) {
         Mage::throwException(Mage::helper('enterprise_admingws')->__('Please assign this entity to a store view.'));
     }
     // make sure disallowed store ids won't be modified
     $originalStores = $model->getResource()->getStores($model);
     $model->setStores($this->_updateSavingStoreIds($storeIds, $originalStores));
 }