/** * Ensure that the a database connection exists * If not, do load the route * * @return $this */ public function preDispatch() { if (Mage::registry('wordpress_controller')) { Mage::unregister('wordpress_controller'); } Mage::register('wordpress_controller', $this); parent::preDispatch(); try { if (!$this->_canRunUsingConfig()) { $this->_forceForwardViaException('noRoute'); return; } if ($this->getRequest()->getParam('feed_type')) { $this->getRequest()->setParam('feed', $this->getRequest()->getParam('feed_type')); // Legacy fix if (strpos(strtolower($this->getRequest()->getActionName()), 'feed') === false) { $this->_forceForwardViaException('feed'); return; } } } catch (Mage_Core_Controller_Varien_Exception $e) { throw $e; } catch (Exception $e) { Mage::helper('wordpress')->log($e->getMessage()); $this->_forceForwardViaException('noRoute'); return; } // Check for redirects and forwards $transport = new Varien_Object(); Mage::dispatchEvent('wordpress_' . strtolower(substr(get_class($this), strlen('Fishpig_Wordpress_'), -strlen('Controller'))) . '_controller_pre_dispatch_after', array('transport' => $transport, 'action' => $this)); if ($transport->getForward()) { return $this->_forward($transport->getForward()->getAction(), $transport->getForward()->getController(), $transport->getForward()->getModule()); } return $this; }