*/ class Mage_Rss_CatalogController extends Mage_Core_Controller_Front_Action { protected function isFeedEnable($code) { return Mage::getStoreConfig('rss/catalog/'.$code); } protected function checkFeedEnable($code) { if ($this->isFeedEnable($code)) { $this->getResponse()->setHeader('Content-type', 'text/xml; charset=UTF-8'); return true; } else { $this->getResponse()->setHeader('HTTP/1.1','404 Not Found'); $this->getResponse()->setHeader('Status','404 File not found'); $this->_forward('nofeed','index','rss'); return false; } } public function newAction() { $this->checkFeedEnable('new'); $this->loadLayout(false); $this->renderLayout(); } public function specialAction() { $this->checkFeedEnable('special'); $this->loadLayout(false); $this->renderLayout(); } public function salesruleAction() { $this->checkFeedEnable('salesrule'); $this->loadLayout(false); $this->renderLayout(); } public function tagAction() { if ($this->checkFeedEnable('tag')) { $tagName = urldecode($this->getRequest()->getParam('tagName')); $tagModel = Mage::getModel('tag/tag'); $tagModel->loadByName($tagName); if ($tagModel->getId() && $tagModel->getStatus()==$tagModel->getApprovedStatus()) { Mage::register('tag_model', $tagModel); $this->loadLayout(false); $this->renderLayout(); return; } } $this->_forward('nofeed', 'index', 'rss'); } public function notifystockAction() { $this->getResponse()->setHeader('Content-type', 'text/xml; charset=UTF-8'); $this->loadLayout(false); $this->renderLayout(); } public function reviewAction() { $this->getResponse()->setHeader('Content-type', 'text/xml; charset=UTF-8'); $this->loadLayout(false); $this->renderLayout(); } public function categoryAction() { if ($this->checkFeedEnable('category')) { $this->loadLayout(false); $this->renderLayout(); } } /** * Controller predispatch method to change area for some specific action. * * @return Mage_Rss_CatalogController */ public function preDispatch() { $action = strtolower($this->getRequest()->getActionName()); if ($action == 'notifystock') { $this->_currentArea = 'adminhtml'; Mage::helper('rss')->authAdmin('catalog/products'); } if ($action == 'review') { $this->_currentArea = 'adminhtml'; Mage::helper('rss')->authAdmin('catalog/reviews_ratings'); } return parent::preDispatch(); } }