/** * 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; }
/** * 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; }
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; }
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'); } }
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); }