/** * @covers Mage_Core_Controller_Request_Http::rewritePathInfo * @covers Mage_Core_Controller_Request_Http::getOriginalPathInfo * @magentoConfigFixture current_store web/url/use_store 1 */ public function testRewritePathInfoStoreCodeInUrl() { $pathInfo = $this->_model->getPathInfo(); $this->_model->rewritePathInfo('test/path'); $this->assertNotEquals($pathInfo, $this->_model->getPathInfo()); $this->assertEquals('test/path', $this->_model->getPathInfo()); $this->assertEquals($pathInfo, $this->_model->getOriginalPathInfo()); }
/** * Validate and Match Cms Page and modify request * * @param Mage_Core_Controller_Request_Http $request * @return bool * * @SuppressWarnings(PHPMD.ExitExpression) */ public function match(Mage_Core_Controller_Request_Http $request) { if (!Mage::isInstalled()) { Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('install'))->sendResponse(); exit; } $identifier = trim($request->getPathInfo(), '/'); $condition = new Varien_Object(array('identifier' => $identifier, 'continue' => true)); $this->_eventManager->dispatch('cms_controller_router_match_before', array('router' => $this, 'condition' => $condition)); $identifier = $condition->getIdentifier(); if ($condition->getRedirectUrl()) { Mage::app()->getFrontController()->getResponse()->setRedirect($condition->getRedirectUrl())->sendResponse(); $request->setDispatched(true); return $this->_controllerFactory->createController('Mage_Core_Controller_Varien_Action_Redirect', array('request' => $request)); } if (!$condition->getContinue()) { return null; } $page = Mage::getModel('Mage_Cms_Model_Page'); $pageId = $page->checkIdentifier($identifier, Mage::app()->getStore()->getId()); if (!$pageId) { return null; } $request->setModuleName('cms')->setControllerName('page')->setActionName('view')->setParam('page_id', $pageId); $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, $identifier); return $this->_controllerFactory->createController('Mage_Core_Controller_Varien_Action_Forward', array('request' => $request)); }
/** * * @param Mage_Core_Controller_Request_Http $request * @return string */ public function getCurrentUnSecureUrl($request) { if ($alias = $request->getAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS)) { return Mage::getBaseUrl('link', false) . ltrim($alias, '/'); } return Mage::getBaseUrl('link', false) . ltrim($request->getPathInfo(), '/'); }
/** * Retrieve current secure url * * @param Mage_Core_Controller_Request_Http $request * @return string */ protected function _getCurrentSecureUrl($request) { return Mage::app()->getStore(Mage_Core_Model_App::ADMIN_STORE_ID)->getBaseUrl('link', true) . ltrim($request->getPathInfo(), '/'); }
/** * Update system data for current VDE environment * * @param string $areaCode * @param Mage_Core_Controller_Request_Http $request * @param Mage_Core_Controller_Varien_ActionAbstract $controller */ public function update($areaCode, Mage_Core_Controller_Request_Http $request, Mage_Core_Controller_Varien_ActionAbstract $controller) { $handle = $request->getParam('handle', ''); if (empty($handle)) { $mode = self::MODE_NAVIGATION; if (!$request->isAjax()) { $this->_backendSession->setData(self::CURRENT_HANDLE_SESSION_KEY, $controller->getFullActionName()); $this->_backendSession->setData(self::CURRENT_URL_SESSION_KEY, $request->getPathInfo()); } } else { $mode = self::MODE_DESIGN; } $this->_backendSession->setData(self::CURRENT_MODE_SESSION_KEY, $mode); $this->_injectUrlModel($mode); $this->_injectLayout($mode, $areaCode); $this->_injectLayoutUpdateResourceModel(); $this->_setTheme(); $this->_disableCache(); }
/** * Modify request path to imitate basic request * * @param Mage_Core_Controller_Request_Http $request * @return Mage_DesignEditor_Controller_Varien_Router_Standard */ protected function _prepareVdeRequest(Mage_Core_Controller_Request_Http $request) { $vdeFrontName = $this->_helper->getFrontName(); $noVdePath = substr($request->getPathInfo(), strlen($vdeFrontName) + 1) ?: '/'; $request->setPathInfo($noVdePath); return $this; }
/** * Parse request URL params * * @param Mage_Core_Controller_Request_Http $request * @return array */ protected function _parseRequest(Mage_Core_Controller_Request_Http $request) { $output = array(); $path = trim($request->getPathInfo(), '/'); $params = explode('/', $path ? $path : $this->_getDefaultPath()); foreach ($this->_requiredParams as $paramName) { $output[$paramName] = array_shift($params); } for ($i = 0, $l = sizeof($params); $i < $l; $i += 2) { $output['variables'][$params[$i]] = isset($params[$i + 1]) ? urldecode($params[$i + 1]) : ''; } return $output; }