Example #1
1
 /**
  * Validate and Match Cms Page and modify request
  *
  * @param Zend_Controller_Request_Http $request
  * @return bool
  *
  * @SuppressWarnings(PHPMD.ExitExpression)
  */
 public function match(Zend_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));
     Mage::dispatchEvent('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 Mage::getControllerInstance('Mage_Core_Controller_Varien_Action_Forward', $request, Mage::app()->getFrontController()->getResponse());
     }
     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 Mage::getControllerInstance('Mage_Core_Controller_Varien_Action_Forward', $request, Mage::app()->getFrontController()->getResponse());
 }
Example #2
0
 protected function matchForwardMultilevel()
 {
     $pageId = $this->request->getPathInfo();
     $pageId = $this->getUrlHelper()->checkRemoveSuffix($pageId);
     $pageId = trim($pageId, '/') . '/';
     $cat = $this->matchMultilevel($pageId);
     if ($cat !== false) {
         if ($cat) {
             // normal category
             $result = $this->forwardCategory($cat);
         } else {
             // root category
             $this->forwardShopby();
             $result = true;
         }
         if ($result && $this->urlMode == Amasty_Shopby_Model_Source_Url_Mode::MODE_SHORT && Mage::getStoreConfig('amshopby/seo/redirects_enabled')) {
             /** @var Amasty_Shopby_Model_Url_Builder $urlBuilder */
             $urlBuilder = Mage::getModel('amshopby/url_builder');
             $urlBuilder->reset();
             $urlBuilder->mode = $this->urlMode;
             $url = $urlBuilder->getUrl();
             Mage::app()->getResponse()->setRedirect($url, 301);
         }
         return true;
     }
 }
Example #3
0
 public function match(Zend_Controller_Request_Http $request)
 {
     if (!Mage::app()->isInstalled()) {
         Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('install'))->sendResponse();
         exit;
     }
     $route = "f";
     $identifier = $request->getPathInfo();
     if (substr(str_replace("/", "", $identifier), 0, strlen($route)) != $route) {
         return false;
     }
     $identifier = substr_replace($request->getPathInfo(), '', 0, strlen("/" . $route . "/"));
     $identifier = str_replace('.html', '', $identifier);
     $identifier = str_replace('.htm', '', $identifier);
     $identifier = str_replace('.php', '', $identifier);
     if ($identifier[strlen($identifier) - 1] == "/") {
         $identifier = substr($identifier, '', -1);
     }
     $identifier = explode('/', $identifier, 3);
     if (isset($identifier[1]) && isset($identifier[0]) && !isset($identifier[2])) {
         $request->setModuleName('f')->setControllerName('index')->setActionName('view')->setParam('id', $identifier[0])->setParam('v', $identifier[1]);
         return true;
     } else {
         return false;
     }
 }
 /**
  * Match the request against all enabled splash routes
  *
  * @return bool
  */
 protected function _match()
 {
     $requestUri = trim($this->_request->getPathInfo(), '/');
     Mage::dispatchEvent('attributeSplash_match_routes_before', array('router' => $this, 'request_uri' => $requestUri));
     if ($this->getRequest()->getModuleName() === 'splash') {
         return true;
     }
     $isDoubleBarrel = strpos($requestUri, '/') !== false;
     $includeGroupUrlKey = Mage::getStoreConfigFlag('attributeSplash/page/include_group_url_key');
     $urlSuffix = rtrim(Mage::getStoreConfig('attributeSplash/seo/url_suffix'), '/');
     if ($urlSuffix) {
         if (substr($requestUri, -strlen($urlSuffix)) !== $urlSuffix) {
             return false;
         }
         $requestUri = substr($requestUri, 0, -strlen($urlSuffix));
     }
     if ($isDoubleBarrel) {
         // Must be splash page
         if (!$includeGroupUrlKey) {
             // URL contains / but no group key so should be single
             return false;
         }
         list($groupUrlKey, $pageUrlKey) = explode('/', $requestUri);
         return $this->_loadSplashPage($pageUrlKey, $groupUrlKey);
     } else {
         if ($includeGroupUrlKey) {
             return $this->_loadSplashGroup($requestUri);
         }
     }
     if ($this->_loadSplashPage($requestUri)) {
         return true;
     }
     return $this->_loadSplashGroup($requestUri);
 }
Example #5
0
 public function match(Zend_Controller_Request_Http $request)
 {
     if (!Mage::app()->isInstalled()) {
         Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('install'))->sendResponse();
         exit;
     }
     $route = Mage::helper('clnews')->getRoute();
     $identifier = $request->getPathInfo();
     if (substr(str_replace("/", "", $identifier), 0, strlen($route)) != $route) {
         return false;
     }
     $identifier = substr_replace($request->getPathInfo(), '', 0, strlen("/" . $route . "/"));
     $identifier = str_replace(Mage::helper('clnews')->getNewsitemUrlSuffix(), '', $identifier);
     if (substr($request->getPathInfo(), 0, 7) !== '/clnews') {
         if ($identifier == '') {
             $request->setModuleName('clnews')->setControllerName('index')->setActionName('index');
             return true;
         } elseif (substr($identifier, 0, 9) === 'category/') {
             $len = strcspn($identifier, '/');
             $key = substr($identifier, $len + 1);
             $request->setModuleName('clnews')->setControllerName('index')->setActionName('index')->setParam('category', $key);
             return true;
         } elseif (substr($identifier, 0, 4) === 'rss/') {
             $request->setModuleName('clnews')->setControllerName('rss')->setActionName('index');
             return true;
         } elseif ($pos = strpos($identifier, '/print/article/')) {
             $param = substr($identifier, $pos + 15);
             $param = trim(str_replace('/', '', $param));
             $request->setModuleName('clnews')->setControllerName('newsitem')->setActionName('print')->setParam('article', $param);
             return true;
         } elseif (substr($identifier, 0, 9) === 'newsitem/') {
             $str = str_replace('newsitem/view/id/', '', $identifier);
             $len = strcspn($identifier, '/');
             $id = substr($identifier, 0, $len);
             $request->setModuleName('clnews')->setControllerName('newsitem')->setActionName('view')->setParam('id', $id);
             return true;
         } elseif ($pos = strpos($identifier, '/q/')) {
             $param = substr($identifier, $pos + 2);
             $param = trim(str_replace('/', '', $param));
             $request->setModuleName('clnews')->setControllerName('index')->setActionName('index')->setParam('q', $param);
             return true;
         } elseif (substr($identifier, 0, 15) !== 'adminhtml_news/' && strpos($identifier, '/') && substr($request->getPathInfo(), 0, strlen($route) + 2) === '/' . $route . '/' && strpos($identifier, 'category/') === false) {
             $len = strcspn($identifier, '/');
             $category = substr($identifier, 0, $len);
             $key = substr($identifier, $len + 1);
             $request->setModuleName('clnews')->setControllerName('newsitem')->setActionName('view')->setParams(array('category' => $category, 'key' => $key));
             return true;
         } elseif (substr($request->getPathInfo(), 0, strlen($route) + 2) === '/' . $route . '/') {
             $request->setModuleName('clnews')->setControllerName('newsitem')->setActionName('view')->setParam('key', $identifier);
             return true;
         }
     }
     return false;
 }
Example #6
0
 /**
  * match the route
  * @param Zend_Controller_Request_Http $request
  * @return bool
  */
 public function match(Zend_Controller_Request_Http $request)
 {
     //if magento is not installed redirect to install
     if (!Mage::isInstalled()) {
         Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('install'))->sendResponse();
         exit;
     }
     //get the url key
     $urlKey = trim($request->getPathInfo(), '/');
     //explode by slash
     $parts = explode('/', $urlKey);
     //if there are not 2 parts (tag/something) in the url we don't care about it.
     //return false and let the rest of the application take care of the url.
     if (count($parts) != 2) {
         return false;
     }
     //if the first part of the url key is not 'tag' we don't care about it
     //return false and let the rest of the application take care of the url
     if ($parts[0] != 'tag') {
         return false;
     }
     $tagName = urldecode($parts[1]);
     //tag name
     //load the tag model
     $tag = Mage::getModel('tag/tag')->loadByName($tagName);
     //if there is no tag with this name available in the current store just do nothing
     if (!$tag->getId() || !$tag->isAvailableInStore()) {
         return false;
     }
     //but if the tag is valid
     //say to magento that the request should be mapped to `tag/product/list/tagId/ID_HERE` - the original url
     $request->setModuleName('tag')->setControllerName('product')->setActionName('list')->setParam('tagId', $tag->getId());
     $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, $urlKey);
     return true;
 }
Example #7
0
 public function match(Zend_Controller_Request_Http $request)
 {
     if (!Mage::isInstalled()) {
         Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('install'))->sendResponse();
         exit;
     }
     /* @var $core Mana_Core_Helper_Data */
     $core = Mage::helper('mana_core');
     if ($core->getRoutePath() != '//') {
         return false;
     }
     /* @var $routerHelper Mana_Core_Helper_Router */
     $routerHelper = Mage::helper('mana_core/router');
     $path = ltrim($request->getPathInfo(), '/');
     $urlKey = Mage::getStoreConfig('mana/ajax/url_key_filter');
     $routeSeparator = Mage::getStoreConfig('mana/ajax/route_separator_filter');
     if ($core->startsWith($path, $urlKey . '/') && ($pos = strpos($path, '/' . $routeSeparator . '/')) > strlen($urlKey . '/')) {
         $this->_route = substr($path, strlen($urlKey . '/'), $pos - strlen($urlKey . '/'));
         $path = substr($path, $pos + strlen('/' . $routeSeparator));
         $routerHelper->changePath($path)->processWithoutRendering($this, 'render');
         $baseUrl = parse_url(Mage::getUrl(null, array('_nosid' => true)));
         Mage::register('m_original_request_uri', $_SERVER['REQUEST_URI']);
         $_SERVER['REQUEST_URI'] = $baseUrl['path'] . ($path ? ltrim($path, '/') : '/') . (($queryPos = strpos($_SERVER['REQUEST_URI'], '?')) !== false ? substr($_SERVER['REQUEST_URI'], $queryPos) : '');
         Mage::register('manapro_filterajax_request', 1);
         $this->getCatalogSession()->setData('manapro_filterajax_request', 1);
         if ($core->isEnterpriseUrlRewriteInstalled()) {
             $this->_getRequestRewriteController()->rewrite();
         } else {
             Mage::getModel('core/url_rewrite')->rewrite();
         }
     }
     return false;
 }
 /**
  * Rewritten function of the standard controller. Tries to match the pathinfo on url parameters.
  * 
  * @see Mage_Core_Controller_Varien_Router_Standard::match()
  * @param Zend_Controller_Request_Http $request The http request object that needs to be mapped on Action Controllers.
  */
 public function match(Zend_Controller_Request_Http $request)
 {
     if (!Mage::isInstalled()) {
         Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('install'))->sendResponse();
         exit;
     }
     $identifier = trim($request->getPathInfo(), '/');
     // try to gather url parameters from parser.
     /* @var $parser Flagbit_FilterUrls_Model_Parser */
     $parser = Mage::getModel('filterurls/parser');
     $parsedRequestInfo = $parser->parseFilterInformationFromRequest($identifier, Mage::app()->getStore()->getId());
     if (!$parsedRequestInfo) {
         return false;
     }
     Mage::register('filterurls_active', true);
     // if successfully gained url parameters, use them and dispatch ActionController action
     $request->setRouteName('catalog')->setModuleName('catalog')->setControllerName('category')->setActionName('view')->setParam('id', $parsedRequestInfo['categoryId']);
     $pathInfo = 'catalog/category/view/id/' . $parsedRequestInfo['categoryId'];
     $requestUri = '/' . $pathInfo . '?';
     foreach ($parsedRequestInfo['additionalParams'] as $paramKey => $paramValue) {
         $requestUri .= $paramKey . '=' . $paramValue . '&';
     }
     $controllerClassName = $this->_validateControllerClassName('Mage_Catalog', 'category');
     $controllerInstance = Mage::getControllerInstance($controllerClassName, $request, $this->getFront()->getResponse());
     $request->setRequestUri(substr($requestUri, 0, -1));
     $request->setPathInfo($pathInfo);
     // dispatch action
     $request->setDispatched(true);
     $controllerInstance->dispatch('view');
     $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, $identifier);
     return true;
 }
Example #9
0
 public function match(Zend_Controller_Request_Http $request)
 {
     if (!Mage::isInstalled()) {
         Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('install'))->sendResponse();
         exit;
     }
     $identifier = trim($request->getPathInfo(), '/');
     /* @var $parser Hackathon_Layeredlanding_Model_Layeredlanding */
     $landingPage = Mage::getModel('layeredlanding/layeredlanding')->loadByUrl($identifier);
     if (!$landingPage->getId()) {
         return false;
     }
     Mage::register('current_landingpage', $landingPage);
     Mage::app()->getStore()->setConfig(Mage_Catalog_Helper_Category::XML_PATH_USE_CATEGORY_CANONICAL_TAG, 0);
     // disable canonical tag
     // if successfully gained url parameters, use them and dispatch ActionController action
     $categoryIdsValue = $landingPage->getCategoryIds();
     $categoryIds = explode(',', $categoryIdsValue);
     $firstCategoryId = $categoryIds[0];
     $request->setRouteName('catalog')->setModuleName('catalog')->setControllerName('category')->setActionName('view')->setParam('id', $firstCategoryId);
     /** @var $attribute Hackathon_Layeredlanding_Model_Attributes */
     foreach ($landingPage->getAttributes() as $attribute) {
         $attr = Mage::getModel('eav/entity_attribute')->load($attribute->getAttributeId());
         $request->setParam($attr->getAttributeCode(), $attribute->getValue());
     }
     $controllerClassName = $this->_validateControllerClassName('Mage_Catalog', 'category');
     $controllerInstance = Mage::getControllerInstance($controllerClassName, $request, $this->getFront()->getResponse());
     $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, $identifier);
     // dispatch action
     $request->setDispatched(true);
     $controllerInstance->dispatch('view');
     return true;
 }
Example #10
0
 /**
  * Validate and Match Cms Page and modify request
  *
  * @param Zend_Controller_Request_Http $request
  * @return bool
  */
 public function match(Zend_Controller_Request_Http $request)
 {
     if (Mage::app()->getStore()->isAdmin()) {
         return false;
     }
     $pathInfo = $request->getPathInfo();
     // remove suffix if any
     $suffix = Mage::helper('amlanding/url')->getSuffix();
     if ($suffix && '/' != $suffix) {
         $pathInfo = str_replace($suffix, '', $pathInfo);
     }
     $pathInfo = explode('/', trim($pathInfo, '/ '), 2);
     $identifier = $pathInfo[0];
     $params = isset($pathInfo[1]) ? $pathInfo[1] : '';
     /* @var $page Amasty_Xlanding_Model_Page */
     $page = Mage::getModel('amlanding/page');
     $pageId = $page->checkIdentifier($identifier, Mage::app()->getStore()->getId());
     if (!$pageId) {
         return false;
     }
     $params = trim($params, '/ ');
     if ($params) {
         $params = explode('/', $params);
         Mage::register('amshopby_current_params', $params);
     }
     $request->setModuleName('amlanding')->setControllerName('page')->setActionName('view')->setParam('page_id', $pageId)->setParam('am_landing', $identifier);
     return true;
 }
Example #11
0
 public function match(Zend_Controller_Request_Http $request)
 {
     if (!Mage::isInstalled()) {
         Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('install'))->sendResponse();
         exit;
     }
     $identifier = trim($request->getPathInfo(), '/');
     $parts = explode('/', $identifier);
     if (isset($parts[1]) && $parts[1] == 'reviews') {
         $product = Mage::getModel('catalog/product')->loadByAttribute('url_key', $parts[0]);
         if (isset($parts[2])) {
             $p = explode('-', $parts[2]);
             $id = (int) end($p);
             $request->setRouteName('review')->setModuleName('review')->setControllerName('product')->setActionName('view')->setParam('id', $id)->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, 'reviews');
             return true;
         } else {
             if ($product) {
                 $request->setRouteName('review')->setModuleName('review')->setControllerName('product')->setActionName('list')->setParam('id', $product->getId())->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, 'reviews');
                 return true;
             }
         }
     } elseif ($parts[0] == 'tag' && isset($parts[1])) {
         $p = explode('-', $parts[1]);
         $id = (int) end($p);
         $request->setRouteName('tag')->setModuleName('tag')->setControllerName('product')->setActionName('list')->setParam('tagId', $id)->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, 'tags');
         return true;
     }
     return false;
 }
Example #12
0
 /**
  *  See if any product matches
  *
  * @param Zend_Controller_Request_Http $request
  * @return bool
  */
 public function match(Zend_Controller_Request_Http $request)
 {
     if (!Mage::isInstalled()) {
         Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('install'))->sendResponse();
         exit;
     }
     // Clear session to make sure users can add products and the shopping cart clears properly
     if (isset($_GET['zipcode'])) {
         Mage::helper('urls')->clearSession($_GET['zipcode']);
     }
     // Get basic data
     $identifier = urldecode(strtolower(trim($request->getPathInfo(), '/')));
     $vendorsCollection = Mage::helper('urls')->getVendors();
     $vendorId = false;
     $productSlug = '';
     // Get vendor id
     $vendorId = $this->_detectVendorId($identifier, $vendorsCollection);
     // Get product slug
     preg_match('/.*\\/(.*).html$/', $identifier, $matches);
     $productSlug = $matches[1];
     if ($vendorId) {
         Mage::register('vendorId', $vendorId);
         $productId = Mage::helper('urls')->getProductIdBySlug($productSlug, $vendorId);
         if ('' == $productId || empty($productId)) {
             return false;
         }
         // Point to correct product
         $request->setModuleName('catalog')->setControllerName('product')->setActionName('view')->setParam('id', $productId);
         return true;
     }
     return false;
 }
Example #13
0
 public function match(Zend_Controller_Request_Http $request)
 {
     if (!Mage::app()->isInstalled()) {
         Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('install'))->sendResponse();
         exit;
     }
     $pathInfo = trim($request->getPathInfo(), '/');
     //echo $pathInfo;die();
     $pathInfoAr = explode('/', $pathInfo);
     if ($pathInfoAr[0] == Mage::getStoreConfig('vc_miniblog/blog/router')) {
         if (isset($pathInfoAr[1])) {
             switch ($pathInfoAr[1]) {
                 case 'tag':
                     $request->setModuleName('vc_miniblog')->setControllerName('index')->setActionName('index');
                     $request->setParams(array('tag' => $pathInfoAr[2]));
                     $request->setParams(array('tag' => $pathInfoAr[2]));
                     break;
                 case 'cat':
                     $request->setModuleName('vc_miniblog')->setControllerName('index')->setActionName('index');
                     $request->setParams(array('cat' => $pathInfoAr[2]));
                     break;
                 default:
                     $request->setModuleName('vc_miniblog')->setControllerName('index')->setActionName('postDetail');
                     $request->setParams(array('identifier' => $pathInfoAr[1]));
                     break;
             }
         } else {
             $request->setModuleName('vc_miniblog')->setControllerName('index')->setActionName('index');
         }
         return true;
     }
     return false;
 }
Example #14
0
 public function match(Zend_Controller_Request_Http $request)
 {
     if (!Mage::isInstalled()) {
         Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('install'))->sendResponse();
         exit;
     }
     $pathInfo = trim($request->getPathInfo(), '/');
     $params = explode('/', $pathInfo);
     if (isset($params[0]) && $params[0] == 'miembro' || isset($params[0]) && $params[0] == 'member') {
         //redirect to mymodule/brands/index/brand_name/addidas
         $request->setModuleName('member')->setControllerName('index')->setActionName('index');
         if (isset($params[1])) {
             $request->setParam('member_url', $params[1]);
         }
         $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, $pathInfo);
         return true;
     }
     if (isset($params[0]) && $params[0] == 'mwcon') {
         $request->setModuleName('member')->setControllerName('index')->setActionName('signin');
         if (isset($params[1])) {
             $request->setParam('member_id', $params[1]);
         }
         $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, $pathInfo);
         return true;
     }
     return false;
 }
 /**
  * Validate and match entities and modify request
  *
  * @access public
  * @param Zend_Controller_Request_Http $request
  * @return bool
  * @author Ultimate Module Creator
  */
 public function match(Zend_Controller_Request_Http $request)
 {
     if (!Mage::isInstalled()) {
         Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('install'))->sendResponse();
         exit;
     }
     $urlKey = trim($request->getPathInfo(), '/');
     $check = array();
     $check['trainevent'] = new Varien_Object(array('prefix' => Mage::getStoreConfig('wage_trainevent/trainevent/url_prefix'), 'suffix' => Mage::getStoreConfig('wage_trainevent/trainevent/url_suffix'), 'list_key' => Mage::getStoreConfig('wage_trainevent/trainevent/url_rewrite_list'), 'list_action' => 'index', 'model' => 'wage_trainevent/trainevent', 'controller' => 'trainevent', 'action' => 'view', 'param' => 'id', 'check_path' => 0));
     foreach ($check as $key => $settings) {
         if ($settings->getListKey()) {
             if ($urlKey == $settings->getListKey()) {
                 $request->setModuleName('wage_trainevent')->setControllerName($settings->getController())->setActionName($settings->getListAction());
                 $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, $urlKey);
                 return true;
             }
         }
         if ($settings['prefix']) {
             $parts = explode('/', $urlKey);
             if ($parts[0] != $settings['prefix'] || count($parts) != 2) {
                 continue;
             }
             $urlKey = $parts[1];
         }
         if ($settings['suffix']) {
             $urlKey = substr($urlKey, 0, -strlen($settings['suffix']) - 1);
         }
         $model = Mage::getModel($settings->getModel());
     }
     return false;
 }
Example #16
0
 /**
  * Validate and Match Manufacturer Page and modify request
  *
  * @param Zend_Controller_Request_Http $request
  * @return bool
  */
 public function match(Zend_Controller_Request_Http $request)
 {
     if (!Mage::isInstalled()) {
         Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('install'))->sendResponse();
         exit;
     }
     $router = 'manufacturers';
     $identifier = trim(str_replace('/manufacturers/', '', $request->getPathInfo()), '/');
     $condition = new Varien_Object(array('identifier' => $identifier, 'continue' => true));
     Mage::dispatchEvent('manufacturer_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 true;
     }
     if (!$condition->getContinue()) {
         return false;
     }
     $manufacturer = Mage::getModel('zeon_manufacturer/manufacturer');
     $manufacturerId = $manufacturer->checkIdentifier($identifier, Mage::app()->getStore()->getId());
     if (trim($identifier) && $manufacturerId) {
         $request->setModuleName('manufacturers')->setControllerName('index')->setActionName('view')->setParam('manufacturer_id', $manufacturerId);
         $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, $router . '/' . $identifier);
         return true;
     }
     return false;
 }
Example #17
0
 public function match(Zend_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));
     Mage::dispatchEvent('magicproduct_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 true;
     }
     if (!$condition->getContinue()) {
         return false;
     }
     if (!in_array($identifier, $this->router)) {
         return false;
     }
     $request->setModuleName('magicproduct')->setControllerName('index')->setActionName('product')->setParam('type', $identifier);
     $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, $identifier);
     return true;
 }
Example #18
0
 protected function _initStoreRoutes()
 {
     $request = new Zend_Controller_Request_Http();
     $path = explode('/', trim($request->getPathInfo(), '/'));
     $requestedPath = array_shift($path);
     $requestedHost = $request->getHttpHost();
     if ($store = Cosmos_Api::get()->cosmos->getStoreByHostPath($requestedHost, $requestedPath)) {
         $this->bootstrap('session');
         Zend_Registry::set('csession', new Zend_Session_Namespace("cosmos_{$store['group_id']}"));
         Zend_Registry::get('log')->info($store);
         if ($store['path']) {
             $this->bootstrap('frontcontroller');
             $front = Zend_Controller_Front::getInstance();
             $request = $front->getRequest();
             $dispatcher = $front->getDispatcher();
             $defaultRoute = new Zend_Controller_Router_Route_Module(array(), $dispatcher, $request);
             $front->getRouter()->removeDefaultRoutes();
             $defaults = array('path' => $store['path'], 'module' => $dispatcher->getDefaultModule());
             $pathRoute = new Zend_Controller_Router_Route(':path', $defaults);
             Zend_Registry::set('cosmosRoute', $pathRoute);
             // This is to catch empty requests because for some reason 'default' doesn't.
             $front->getRouter()->addRoute('default-empty', $pathRoute);
             $front->getRouter()->addRoute('default', $pathRoute->chain($defaultRoute));
             Zend_Registry::set('mode', 'path');
         } else {
             Zend_Registry::set('mode', 'host');
         }
     } else {
         die('fail');
         // no matching store?
     }
     Cosmos_Addon::getInstance($store['addons']);
 }
Example #19
0
 public function match(Zend_Controller_Request_Http $request)
 {
     $helper = Mage::helper('sm_shopby');
     if (!$helper->isEnabled()) {
         return false;
     }
     $suffix = Mage::getStoreConfig('catalog/seo/category_url_suffix');
     $identifier = ltrim($request->getPathInfo(), '/');
     $identifier = substr($identifier, 0, strlen($identifier) - strlen($suffix));
     $urlSplit = explode($helper->getRoutingSuffix(), $identifier, 2);
     if (!isset($urlSplit[1])) {
         return false;
     }
     $urlRewrite = Mage::getModel('core/url_rewrite');
     $urlRewrite->setStoreId(Mage::app()->getStore()->getId());
     $cat = $urlSplit[0];
     $catPath = $cat . $suffix;
     $urlRewrite->loadByRequestPath($catPath);
     if ($urlRewrite->getId()) {
         $modules = $this->getModuleByFrontName('catalog');
         $found = false;
         foreach ($modules as $realModule) {
             $request->setRouteName($this->getRouteByFrontName('catalog'));
             $this->_checkShouldBeSecure($request, '/catalog/category/view');
             $controllerClassName = $this->_validateControllerClassName($realModule, 'category');
             if (!$controllerClassName) {
                 continue;
             }
             $controllerInstance = Mage::getControllerInstance($controllerClassName, $request, $this->getFront()->getResponse());
             if (!$controllerInstance->hasAction('view')) {
                 continue;
             }
             $found = true;
             break;
         }
         if (!$found) {
             return false;
         }
         $request->setPathInfo($urlRewrite->getTargetPath());
         $request->setRequestUri('/' . $urlRewrite->getTargetPath());
         $request->setModuleName('catalog')->setControllerName('category')->setActionName('view')->setControllerModule($realModule)->setParam('id', $urlRewrite->getCategoryId())->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, $catPath);
         $params = explode('/', trim($urlSplit[1], '/'));
         $layerParams = array();
         $total = count($params);
         for ($i = 0; $i < $total - 1; $i++) {
             if (isset($params[$i + 1])) {
                 $layerParams[$params[$i]] = urldecode($params[$i + 1]);
                 ++$i;
             }
         }
         $layerParams += $request->getPost();
         $request->setParams($layerParams);
         Mage::register('layer_params', $layerParams);
         $request->setDispatched(true);
         $controllerInstance->dispatch('view');
         return true;
     }
     return false;
 }
Example #20
0
 /**
  * Format path url
  * @access private
  * @return unknown
  */
 private function _formatPath()
 {
     // get raw url path
     if (!$this->_path) {
         $this->_path = $this->_request->getPathInfo();
         $this->_path = preg_replace('/\\/+/i', '/', $this->_path);
     }
 }
Example #21
0
 /**
  * Can this request's path be processed by this router?
  *
  * @param Zend_Controller_Request_Http $request
  * @return string|boolean
  */
 protected function _isValidPath(Zend_Controller_Request_Http $request)
 {
     $path = trim($request->getPathInfo(), '/') . '/';
     if (strpos($path, $this->getRouteName()) === 0) {
         return $path;
     }
     return false;
 }
Example #22
0
 public function testSetRequestUri()
 {
     $this->_request->setRequestUri('/archives/past/4?set=this&unset=that');
     $this->assertEquals('/archives/past/4?set=this&unset=that', $this->_request->getRequestUri());
     $this->assertEquals('/archives/past/4', $this->_request->getPathInfo());
     $this->assertEquals('this', $this->_request->getQuery('set'));
     $this->assertEquals('that', $this->_request->getQuery('unset'));
 }
Example #23
0
 /**
  * Match with router
  *
  * @param Zend_Controller_Request_Http $request
  * @return boolean
  */
 public function match(Zend_Controller_Request_Http $request)
 {
     $path = trim($request->getPathInfo(), '/');
     if (strrpos($path, '.json') === strlen($path) - 5) {
         $request->setPathInfo(substr($path, 0, strlen($path) - 5));
         Mage::getSingleton('easyAjax/core')->setEasyAjax(true);
         return parent::match($request);
     }
     return false;
 }
Example #24
0
 /**
  * Matches a user submitted path with a previously defined route.
  * Assigns and returns an array of defaults on a successful match.
  *
  * @param Zend_Controller_Request_Http $request Request to get the path info from
  * @return array|false An array of assigned values or a false on a mismatch
  */
 public function match($request, $partial = null)
 {
     $path = $request->getPathInfo();
     $values = array();
     foreach ($this->_routes as $key => $route) {
         // TODO: Should be an interface method. Hack for 1.0 BC
         if (!method_exists($route, 'getVersion') || $route->getVersion() == 1) {
             $match = $request->getPathInfo();
         } else {
             $match = $request;
         }
         $res = $route->match($match);
         if ($res === false) {
             return false;
         }
         $values = $res + $values;
     }
     return $values;
 }
Example #25
0
 public function match(Zend_Controller_Request_Http $request)
 {
     $identifier = trim($request->getPathInfo(), '/');
     $page = Mage::getSingleton('cms/page');
     $page->setStoreId(Mage::app()->getStore()->getId());
     if (!$page->load($identifier)->getId()) {
         return false;
     }
     $request->setModuleName(isset($d[0]) ? $d[0] : 'cms')->setControllerName(isset($d[1]) ? $d[1] : 'page')->setActionName(isset($d[2]) ? $d[2] : 'view')->setParam('page_id', $page->getId());
     return true;
 }
Example #26
0
 /**
  * Matches a user submitted path with a previously defined route.
  * Assigns and returns an array of defaults on a successful match.
  *
  * @param  Zend_Controller_Request_Http $request Request to get the path info from
  * @param  null                         $partial
  * @return array|false An array of assigned values or a false on a mismatch
  */
 public function match($request, $partial = null)
 {
     $rawPath = $request->getPathInfo();
     $path = trim($request->getPathInfo(), self::URI_DELIMITER);
     $subPath = $path;
     $values = array();
     $matchedPath = null;
     foreach ($this->_routes as $key => $route) {
         if ($key > 0 && $matchedPath !== null && $subPath !== '' && $subPath !== false) {
             $separator = substr($subPath, 0, strlen($this->_separators[$key]));
             if ($separator !== $this->_separators[$key]) {
                 $request->setPathInfo($rawPath);
                 return false;
             }
             $subPath = substr($subPath, strlen($separator));
         }
         // TODO: Should be an interface method. Hack for 1.0 BC
         if (!method_exists($route, 'getVersion') || $route->getVersion() == 1) {
             $match = $subPath;
         } else {
             $request->setPathInfo($subPath);
             $match = $request;
         }
         $res = $route->match($match, true);
         if ($res === false) {
             $request->setPathInfo($rawPath);
             return false;
         }
         $matchedPath = $route->getMatchedPath();
         if ($matchedPath !== null) {
             $subPath = substr($subPath, strlen($matchedPath));
         }
         $values = $res + $values;
     }
     $request->setPathInfo($path);
     if ($subPath !== '' && $subPath !== false) {
         return false;
     }
     return $values;
 }
 /**
  * Validate and Match Cms Page and modify request
  *
  * @param Zend_Controller_Request_Http $request
  * @return bool
  */
 public function match(Zend_Controller_Request_Http $request)
 {
     $this->_request = $request;
     if (($requestUri = $this->_preparePathInfo($request->getPathInfo())) === false) {
         return false;
     }
     if ($this->_match($requestUri) !== false) {
         $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, $requestUri . Mage::getStoreConfig('attributeSplash/seo/url_suffix'));
         Mage::helper('attributeSplash')->clearLayerRewrites();
         return true;
     }
     return false;
 }
Example #28
0
 protected function matchForwardMultilevel()
 {
     $pageId = $this->request->getPathInfo();
     $pageId = $this->getUrlHelper()->checkRemoveSuffix($pageId);
     $pageId = trim($pageId, '/') . '/';
     $cat = $this->matchMultilevel($pageId);
     if ($cat === false) {
         return false;
     }
     if ($cat) {
         // normal category
         try {
             $this->forwardCategory($cat);
         } catch (Mage_Core_Controller_Varien_Exception $e) {
             return false;
         }
     } else {
         // root category
         if (!Mage::getStoreConfig('amshopby/seo/enable_shopby_page')) {
             /** @var Amasty_Shopby_Helper_Attributes $helper */
             $helper = Mage::helper('amshopby/attributes');
             $brand = $helper->getRequestedBrandOption();
             if (!$brand) {
                 return false;
             }
         }
         $this->forwardShopby();
     }
     // Redirect to new short URL
     if ($this->urlMode == Amasty_Shopby_Model_Source_Url_Mode::MODE_SHORT && Mage::getStoreConfig('amshopby/seo/redirects_enabled')) {
         /** @var Amasty_Shopby_Model_Url_Builder $urlBuilder */
         $urlBuilder = Mage::getModel('amshopby/url_builder');
         $urlBuilder->reset();
         $urlBuilder->mode = $this->urlMode;
         $url = $urlBuilder->getUrl();
         Mage::app()->getResponse()->setRedirect($url, 301);
     }
     return true;
 }
Example #29
0
 /**
  * Match the request
  *
  * @param Zend_Controller_Request_Http $request
  * @return boolean
  */
 public function match(Zend_Controller_Request_Http $request)
 {
     if (!$this->_beforeModuleMatch()) {
         return false;
     }
     $front = $this->getFront();
     $path = trim($request->getPathInfo(), '/');
     $pathParts = explode('/', $path, 4);
     if (!isset($pathParts[0])) {
         return parent::match($request);
     }
     switch ($pathParts[0]) {
         case Mage::getStoreConfig('arioem/parts/shortname'):
             $request->setRouteName('arioem');
             $request->setModuleName('Vikont_ARIOEM');
             $request->setControllerModule('Vikont_ARIOEM');
             $controllerName = 'parts';
             // empty($pathParts[1]) ? 'index' : $pathParts[1];
             $request->setControllerName($controllerName);
             $actionName = 'index';
             // empty($pathParts[2]) ? 'index' : $pathParts[2];
             $request->setActionName($actionName);
             $request->setDispatched(true);
             $brand = empty($pathParts[1]) ? false : $pathParts[1];
             Mage::register('oem_brand', $brand);
             $request->setParam('brand', $brand);
             $partNumber = empty($pathParts[2]) ? false : $pathParts[2];
             Mage::register('oem_part_number', $partNumber);
             $request->setParam('partNumber', $partNumber);
             $controllerClassName = $this->_validateControllerClassName('Vikont_ARIOEM', $controllerName);
             $controllerInstance = Mage::getControllerInstance($controllerClassName, $request, $front->getResponse());
             $controllerInstance->dispatch('index');
             return true;
             break;
         case Mage::getStoreConfig('arioem/partcenter/shortname'):
             $request->setRouteName('arioem');
             $request->setModuleName('Vikont_ARIOEM');
             $request->setControllerModule('Vikont_ARIOEM');
             $controllerName = 'partcenter';
             $request->setControllerName($controllerName);
             $actionName = empty($pathParts[1]) ? 'index' : $pathParts[1];
             //'index';
             $request->setActionName($actionName);
             $request->setDispatched(true);
             $controllerClassName = $this->_validateControllerClassName('Vikont_ARIOEM', $controllerName);
             $controllerInstance = Mage::getControllerInstance($controllerClassName, $request, $front->getResponse());
             $controllerInstance->dispatch('index');
             break;
     }
     return parent::match($request);
 }
 public function match(Zend_Controller_Request_Http $request)
 {
     if (!Mage::isInstalled()) {
         Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('install'))->sendResponse();
         exit;
     }
     $pathInfo = $request->getPathInfo();
     $result = Mage::helper('mstcore/urlrewrite')->match($pathInfo);
     if ($result) {
         $request->setRouteName($result->getRouteName())->setModuleName($result->getModuleName())->setControllerName($result->getControllerName())->setActionName($result->getActionName())->setParam('id', $result->getEntityId())->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, $result->getRouteName());
         return true;
     }
     return false;
 }