Example #1
0
 /**
  * Add template data to queue.
  *
  * @param Varien_Object $data
  * @return Mage_Newsletter_Model_Queue
  */
 public function addTemplateData($data)
 {
     if ($data->getTemplateId()) {
         $this->setTemplate(Mage::getModel('newsletter/template')->load($data->getTemplateId()));
     }
     return $this;
 }
Example #2
0
 /**
  * Add template data to queue.
  *
  * @deprecated
  * @param Varien_Object $data
  * @return Mage_Newsletter_Model_Queue
  */
 public function addTemplateData($data)
 {
     $template = $this->getTemplate();
     if ($data->getTemplateId() && $data->getTemplateId() != $template->getId()) {
         $template->load($data->getTemplateId());
     }
     return $this;
 }
Example #3
0
 public function render(Varien_Object $row)
 {
     $value = '---';
     $list = array();
     if (Mage::registry('seo_grid_date')) {
         $list = Mage::registry('seo_grid_date');
     } else {
         $collection = Mage::getResourceModel('seosuite/template_store_collection');
         foreach ($collection as $item) {
             if (!isset($list[$item->getStoreId()])) {
                 $list[$item->getStoreId()] = array();
             }
             $list[$item->getStoreId()][$item->getTemplateId()] = $item->getLastUpdate();
         }
         Mage::register('seo_grid_date', $list, true);
     }
     if (isset($list[$this->getStoreId()][$row->getTemplateId()])) {
         $value = $list[$this->getStoreId()][$row->getTemplateId()];
     }
     return $value;
 }
Example #4
0
 public function render(Varien_Object $row)
 {
     $actions = array();
     if ($row->getQueueStatus() == Mage_Newsletter_Model_Queue::STATUS_NEVER) {
         if (!$row->getQueueStartAt() && $row->getSubscribersTotal()) {
             $actions[] = array('url' => $this->getUrl('*/*/start', array('id' => $row->getId())), 'caption' => Mage::helper('newsletter')->__('Start'));
         }
     } else {
         if ($row->getQueueStatus() == Mage_Newsletter_Model_Queue::STATUS_SENDING) {
             $actions[] = array('url' => $this->getUrl('*/*/pause', array('id' => $row->getId())), 'caption' => Mage::helper('newsletter')->__('Pause'));
             $actions[] = array('url' => $this->getUrl('*/*/cancel', array('id' => $row->getId())), 'confirm' => Mage::helper('newsletter')->__('Do you really want to cancel the queue?'), 'caption' => Mage::helper('newsletter')->__('Cancel'));
         } else {
             if ($row->getQueueStatus() == Mage_Newsletter_Model_Queue::STATUS_PAUSE) {
                 $actions[] = array('url' => $this->getUrl('*/*/resume', array('id' => $row->getId())), 'caption' => Mage::helper('newsletter')->__('Resume'));
             }
         }
     }
     $actions[] = array('url' => $this->getUrl('*/newsletter_template/preview', array('id' => $row->getTemplateId())), 'caption' => Mage::helper('newsletter')->__('Preview'), 'popup' => true);
     $this->getColumn()->setActions($actions);
     return parent::render($row);
 }
 /**
  * Save AirMail message action
  *
  * @return null
  */
 public function saveMessageAction()
 {
     $data = $this->_filterPostData($this->getRequest()->getPost());
     $isError = false;
     $message = false;
     if ($data) {
         try {
             $data = Mage::getModel('core/input_filter_maliciousCode')->filter($data);
             $template = $this->_initTemplate('template_id');
             $message = $this->_initMessage();
             if (!$template->getId() && !$message->getTemplateId()) {
                 $this->_getSession()->addError($this->__('Template for new AirMail Message does not exist.'));
                 $this->_redirect('*/*/queue');
                 return;
             }
             /** @var $app Mage_XmlConnect_Model_Application */
             $app = Mage::getModel('xmlconnect/application')->loadByCode($template->getAppCode());
             $deviceType = Mage::helper('xmlconnect')->getDeviceType($app);
             if ($deviceType == Mage_XmlConnect_Helper_Data::DEVICE_TYPE_ANDROID && $data['type'] == Mage_XmlConnect_Model_Queue::MESSAGE_TYPE_AIRMAIL) {
                 $this->_getSession()->addError($this->__('Android doesn\'t support AirMail message type.'));
                 $redirectParams = $this->_getQueueMessageParams($message);
                 $action = $message->getId() ? 'editQueue' : 'queueMessage';
                 $this->_redirect('*/*/' . $action, $redirectParams);
                 return;
             }
             $temporaryObject = new Varien_Object();
             $temporaryObject->setData($data);
             if ($temporaryObject->getTemplateId()) {
                 $message->setTemplateId($temporaryObject->getTemplateId());
             } else {
                 $message->setTemplateId($template->getId());
             }
             if (!$message->getId()) {
                 // set status for new messages only
                 $message->setStatus(Mage_XmlConnect_Model_Queue::STATUS_IN_QUEUE);
             } elseif ($message->getStatus() != Mage_XmlConnect_Model_Queue::STATUS_IN_QUEUE) {
                 $this->_getSession()->addError($this->__('Message can be edited when status of the message is "In Queue" only.'));
                 $this->_redirect('*/*/queue');
                 return;
             }
             switch ($temporaryObject->getType()) {
                 case Mage_XmlConnect_Model_Queue::MESSAGE_TYPE_AIRMAIL:
                     $message->setData('type', Mage_XmlConnect_Model_Queue::MESSAGE_TYPE_AIRMAIL);
                     break;
                 case Mage_XmlConnect_Model_Queue::MESSAGE_TYPE_PUSH:
                 default:
                     $message->setData('type', Mage_XmlConnect_Model_Queue::MESSAGE_TYPE_PUSH);
                     break;
             }
             if ($temporaryObject->getExecTime()) {
                 $execTime = Mage::getSingleton('core/date')->gmtDate(null, $temporaryObject->getExecTime());
                 $message->setExecTime($execTime ? $execTime : Mage::getSingleton('core/date')->gmtDate());
             } else {
                 $message->setExecTime(new Zend_Db_Expr('NULL'));
             }
             if ($template->getId()) {
                 $message->setAppCode($template->getAppCode());
             }
             $message->setPushTitle($temporaryObject->getPushTitle());
             $message->setMessageTitle($temporaryObject->getMessageTitle());
             $message->setContent($temporaryObject->getContent());
             $message->save();
         } catch (Mage_Core_Exception $e) {
             $this->_getSession()->addException($e, $e->getMessage());
             $isError = true;
         } catch (Exception $e) {
             $this->_getSession()->addException($e, $this->__('Unable to save message.'));
             $isError = true;
             Mage::logException($e);
         }
     }
     if ($isError) {
         if ($isError) {
             Mage::getSingleton('adminhtml/session')->setLoadSessionFlag(true);
         }
         $redirectParams = $this->_getQueueMessageParams($message);
         $this->_redirect('*/*/queueMessage', $redirectParams);
     } else {
         $this->_redirect('*/*/queue');
     }
 }
 public function render(Varien_Object $row)
 {
     $actions = array();
     $actions[] = array('@' => array('href' => $this->getUrl('*/newsletter_template/preview', array('id' => $row->getTemplateId(), 'subscriber' => AO::registry('subscriber')->getId())), 'target' => '_blank'), '#' => AO::helper('customer')->__('View'));
     return $this->_actionsToHtml($actions);
 }
 /**
  * Save AirMail message action
  *
  * @return void
  */
 public function saveMessageAction()
 {
     $data = $this->_filterPostData($this->getRequest()->getPost());
     $isError = false;
     $message = false;
     if ($data) {
         try {
             $data = Mage::getModel('core/input_filter_maliciousCode')->filter($data);
             $template = $this->_initTemplate('template_id');
             $message = $this->_initMessage();
             if (!$template->getId() && !$message->getTemplateId()) {
                 $this->_getSession()->addError($this->__('Template for new AirMail Message does not exist.'));
                 $this->_redirect('*/*/queue');
                 return;
             }
             $temporaryObject = new Varien_Object();
             $temporaryObject->setData($data);
             if ($temporaryObject->getTemplateId()) {
                 $message->setTemplateId($temporaryObject->getTemplateId());
             } else {
                 $message->setTemplateId($template->getId());
             }
             if (!$message->getId()) {
                 // set status for new messages only
                 $message->setStatus(Mage_XmlConnect_Model_Queue::STATUS_IN_QUEUE);
             } elseif ($message->getStatus() != Mage_XmlConnect_Model_Queue::STATUS_IN_QUEUE) {
                 $this->_getSession()->addError($this->__('Message can be edited when status of the message is "IN QUEUE" only.'));
                 $this->_redirect('*/*/queue');
                 return;
             }
             switch ($temporaryObject->getType()) {
                 case Mage_XmlConnect_Model_Queue::MESSAGE_TYPE_AIRMAIL:
                     $message->setData('type', Mage_XmlConnect_Model_Queue::MESSAGE_TYPE_AIRMAIL);
                     break;
                 case Mage_XmlConnect_Model_Queue::MESSAGE_TYPE_PUSH:
                 default:
                     $message->setData('type', Mage_XmlConnect_Model_Queue::MESSAGE_TYPE_PUSH);
                     break;
             }
             if ($temporaryObject->getExecTime()) {
                 $message->setExecTime(Mage::getSingleton('core/date')->gmtDate(null, $temporaryObject->getExecTime()));
             } else {
                 $message->setExecTime(new Zend_Db_Expr('NULL'));
             }
             if ($template->getId()) {
                 $message->setAppCode($template->getAppCode());
             }
             $message->setPushTitle($temporaryObject->getPushTitle());
             $message->setMessageTitle($temporaryObject->getMessageTitle());
             $message->setContent($temporaryObject->getContent());
             $message->save();
         } catch (Mage_Core_Exception $e) {
             $this->_getSession()->addException($e, $e->getMessage());
             $isError = true;
         } catch (Exception $e) {
             $this->_getSession()->addException($e, $this->__('Unable to save message.'));
             $isError = true;
             Mage::logException($e);
         }
     }
     if ($isError) {
         if ($isError) {
             Mage::getSingleton('adminhtml/session')->setLoadSessionFlag(true);
         }
         $redirectParams = array();
         if ($message && $message->getId()) {
             $redirectParams['id'] = $message->getId();
         } else {
             $redirectParams['template_id'] = (int) $this->getRequest()->getParam('template_id');
         }
         $this->_redirect('*/*/queueMessage', $redirectParams);
     } else {
         $this->_redirect('*/*/queue');
     }
 }
Example #8
0
 public function render(Varien_Object $row)
 {
     $actions = array();
     $helper = Mage::helper('newsletter');
     $rowId = $row->getId();
     /*
      * 
      *     const STATUS_NEVER = 0;
      *     const STATUS_SENDING = 1;
      *     const STATUS_CANCEL = 2;
      *     const STATUS_SENT = 3;
      *     const STATUS_PAUSE = 4;
      * 
      */
     switch ($row->getQueueStatus()) {
         case Mage_Newsletter_Model_Queue::STATUS_NEVER:
             /*  start now */
             if ($row->getSubscribersTotal()) {
                 $actions[] = array('url' => $this->getUrl('*/*/start', array('id' => $rowId)), 'confirm' => $helper->__('Do you really want to start the queue now?'), 'caption' => $helper->__('Start now'));
             }
             /*   cancel */
             $actions[] = array('url' => $this->getUrl('*/*/cancel', array('id' => $rowId)), 'confirm' => $helper->__('Do you really want to cancel the queue?'), 'caption' => $helper->__('Cancel'));
             break;
         case Mage_Newsletter_Model_Queue::STATUS_SENT:
             /* delete */
             $actions[] = array('url' => $this->getUrl('*/*/delete', array('id' => $rowId)), 'confirm' => $helper->__('Do you really want to delete the queue?'), 'caption' => $helper->__('Delete'));
             break;
         case Mage_Newsletter_Model_Queue::STATUS_SENDING:
             /* pause */
             $actions[] = array('url' => $this->getUrl('*/*/pause', array('id' => $rowId)), 'caption' => $helper->__('Pause'));
             /* cancel */
             $actions[] = array('url' => $this->getUrl('*/*/cancel', array('id' => $rowId)), 'confirm' => $helper->__('Do you really want to cancel the queue?'), 'caption' => $helper->__('Cancel'));
             break;
         case Mage_Newsletter_Model_Queue::STATUS_CANCEL:
             /* delete */
             $actions[] = array('url' => $this->getUrl('*/*/delete', array('id' => $rowId)), 'confirm' => $helper->__('Do you really want to delete the queue?'), 'caption' => $helper->__('Delete'));
             break;
         case Mage_Newsletter_Model_Queue::STATUS_PAUSE:
             /* resume */
             $actions[] = array('url' => $this->getUrl('*/*/resume', array('id' => $rowId)), 'caption' => $helper->__('Resume'));
             /* cancel */
             $actions[] = array('url' => $this->getUrl('*/*/cancel', array('id' => $rowId)), 'confirm' => $helper->__('Do you really want to cancel the queue?'), 'caption' => $helper->__('Cancel'));
             break;
         default:
             break;
     }
     /* preview */
     $actions[] = array('url' => $this->getUrl('*/adminhtml_template/preview', array('id' => $row->getTemplateId())), 'caption' => $helper->__('Preview'), 'popup' => true);
     $this->getColumn()->setActions($actions);
     return parent::render($row);
 }