*/ class Mage_Adminhtml_Newsletter_ProblemController extends Mage_Adminhtml_Controller_Action { public function indexAction() { $this->_title($this->__('Newsletter'))->_title($this->__('Newsletter Problems')); if ($this->getRequest()->getQuery('ajax')) { $this->_forward('grid'); return; } $this->getLayout()->getMessagesBlock()->setMessages( Mage::getSingleton('adminhtml/session')->getMessages(true) ); $this->loadLayout(); $this->_setActiveMenu('newsletter/problem'); $this->_addBreadcrumb(Mage::helper('newsletter')->__('Newsletter Problem Reports'), Mage::helper('newsletter')->__('Newsletter Problem Reports')); $this->_addContent( $this->getLayout()->createBlock('adminhtml/newsletter_problem', 'problem') ); $this->renderLayout(); } public function gridAction() { if($this->getRequest()->getParam('_unsubscribe')) { $problems = (array) $this->getRequest()->getParam('problem', array()); if (count($problems)>0) { $collection = Mage::getResourceModel('newsletter/problem_collection'); $collection ->addSubscriberInfo() ->addFieldToFilter($collection->getResource()->getIdFieldName(), array('in'=>$problems)) ->load(); $collection->walk('unsubscribe'); } Mage::getSingleton('adminhtml/session') ->addSuccess(Mage::helper('newsletter')->__('Selected problem subscribers have been unsubscribed.')); } if($this->getRequest()->getParam('_delete')) { $problems = (array) $this->getRequest()->getParam('problem', array()); if (count($problems)>0) { $collection = Mage::getResourceModel('newsletter/problem_collection'); $collection ->addFieldToFilter($collection->getResource()->getIdFieldName(), array('in'=>$problems)) ->load(); $collection->walk('delete'); } Mage::getSingleton('adminhtml/session') ->addSuccess(Mage::helper('newsletter')->__('Selected problems have been deleted.')); } $this->getLayout()->getMessagesBlock()->setMessages(Mage::getSingleton('adminhtml/session')->getMessages(true)); $grid = $this->getLayout()->createBlock('adminhtml/newsletter_problem_grid'); $this->getResponse()->setBody($grid->toHtml()); } protected function _isAllowed() { return Mage::getSingleton('admin/session')->isAllowed('newsletter/problem'); } }