Example #1
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 #3
0
 public function testGetAliasedParamZF2455()
 {
     $this->_request->setParam('controller', 'value');
     $this->_request->setAlias('var1', 'controller');
     $this->assertEquals('value', $this->_request->getParam('controller'));
     $this->assertEquals('value', $this->_request->getParam('var1'));
 }
Example #4
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 #5
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 #6
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 #7
0
 /**
  * Implement logic of custom rewrites
  *
  * @return bool
  */
 protected function _rewriteDb()
 {
     if (null === $this->_rewrite->getStoreId() || false === $this->_rewrite->getStoreId()) {
         $this->_rewrite->setStoreId($this->_app->getStore()->getId());
     }
     $requestCases = $this->_getRequestCases();
     $this->_rewrite->loadByRequestPath($requestCases);
     $fromStore = $this->_request->getQuery('___from_store');
     if (!$this->_rewrite->getId() && $fromStore) {
         $stores = $this->_app->getStores(false, true);
         if (!empty($stores[$fromStore])) {
             /** @var $store Mage_Core_Model_Store */
             $store = $stores[$fromStore];
             $fromStoreId = $store->getId();
         } else {
             return false;
         }
         $this->_rewrite->setStoreId($fromStoreId)->loadByRequestPath($requestCases);
         if (!$this->_rewrite->getId()) {
             return false;
         }
         // Load rewrite by id_path
         $currentStore = $this->_app->getStore();
         $this->_rewrite->setStoreId($currentStore->getId())->loadByIdPath($this->_rewrite->getIdPath());
         $this->_setStoreCodeCookie($currentStore->getCode());
         $targetUrl = $currentStore->getBaseUrl() . $this->_rewrite->getRequestPath();
         $this->_sendRedirectHeaders($targetUrl, true);
     }
     if (!$this->_rewrite->getId()) {
         return false;
     }
     $this->_request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, $this->_rewrite->getRequestPath());
     $this->_processRedirectOptions();
     return true;
 }
 /**
  * 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 ($this->_match() !== false) {
         $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, ltrim($request->getPathInfo(), '/'));
         return true;
     }
     return false;
 }
Example #9
0
 public function match(Zend_Controller_Request_Http $request)
 {
     if (!Mage::app()->isInstalled()) {
         Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('install'))->sendResponse();
         exit;
     }
     //echo '<pre>';print_r(Mage::app()->getRequest());exit;
     $urlRoot = Mage::app()->getRequest()->getPathInfo();
     if (!strstr($urlRoot . '/', "/blog/")) {
         return true;
     }
     $route = Mage::helper('blog')->getRoute();
     $uri = str_replace("/blog/", "", strstr(Mage::app()->getRequest()->getPathInfo(), "/blog/"));
     if (!Mage::registry('request_path')) {
         Mage::register('request_path', $uri);
     }
     $request->setAlias(self::REWRITE_REQUEST_PATH_ALIAS, 'blog/' . $uri);
     if (trim($uri, "/") == "taglist") {
         Mage::app()->getRequest()->setControllerName('tag');
         Mage::app()->getRequest()->setActionName('taglist');
         return true;
     }
     if ($uri) {
         $requestInfo = trim($uri);
         $tmp = explode("_", $requestInfo);
         if ($tmp[0] == "adminhtml") {
             return true;
         }
         $urlData = $this->analyticUrl($requestInfo);
         if ($postId = $urlData->getPostId()) {
             Mage::app()->getRequest()->setControllerName('post');
             Mage::app()->getRequest()->setActionName('view');
             Mage::app()->getRequest()->setParam('id', $postId);
             $contentUrl = explode("/", $uri);
             if (count($contentUrl) > 1) {
                 unset($contentUrl[count($contentUrl) - 1]);
                 Mage::app()->getRequest()->setParam('cat_id', $this->analyticUrl(implode('/', $contentUrl) . '.html')->getCategoryId());
             }
             return true;
         } elseif ($tagId = $urlData->getTagId()) {
             Mage::app()->getRequest()->setControllerName('tag');
             Mage::app()->getRequest()->setActionName('view');
             Mage::app()->getRequest()->setParam('tag_id', $tagId);
             return true;
         } elseif ($catId = $urlData->getCategoryId()) {
             Mage::app()->getRequest()->setControllerName('category');
             Mage::app()->getRequest()->setActionName('view');
             Mage::app()->getRequest()->setParam('id', $catId);
             return true;
         }
     }
     return true;
 }
 /**
  * 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 #11
0
 /**
  * Checks
  *
  */
 public function match(Zend_Controller_Request_Http $request)
 {
     $params = trim($request->getPathInfo(), '/');
     $params = explode('/', $params);
     $attribute_code = $params[0];
     $identifier = null;
     if (isset($params[1])) {
         $identifier = $params[1];
     }
     $allowedAttributes = explode(',', Mage::getStoreConfig('dc_catalog/attributes/selectedattributes'));
     $attributes = Mage::getModel('dc_catalog/manufacturer');
     /* @var $attributes DC_Catalog_Model_Manufacturer */
     if (in_array($attribute_code, $allowedAttributes)) {
         //we have something here... try to match to one of the existing attributes
         //first, search in attribute_pages for an existing match
         if ($attributePageId = $attributes->checkIdentifierInPages($attribute_code, $identifier, Mage::app()->getStore()->getId())) {
             //we have a winnnner!!!
             $request->setModuleName('attributeinfo')->setControllerName('AttributeInfo')->setActionName('view')->setParam('attribute_page_id', $attributePageId);
             $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, $attribute_code . '/' . $identifier);
             return true;
         }
         //second, search in attributes for a possible match
         if (($option_id = $attributes->getOptionIdFromIdentifier($attribute_code, $identifier, Mage::app()->getStore()->getId())) > 0) {
             //if ($attributes->getData('attribute_code') > '') {
             //we have another winnnner!!!
             $request->setModuleName('attributeinfo')->setControllerName('AttributeInfo')->setActionName('view')->setParam('attribute_code', $attribute_code)->setParam('option_id', $option_id);
             $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, $attribute_code . '/' . $identifier);
             return true;
             //}
         }
         //well.. just display all the values
         $request->setModuleName('attributeinfo')->setControllerName('AttributeInfo')->setActionName('viewAll')->setParam('attribute_code', $attribute_code);
         $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, $attribute_code . '/' . $identifier);
         return true;
     }
     //we didn't find anything acceptable in this router, resume search in others
     return false;
 }
Example #12
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;
     }
     $sellerAtttributeName = Mage::getConfig()->getNode('default/seller_page/attribute_name');
     $seoDisplay = Mage::getConfig()->getNode('default/seller_page/seo_display');
     if (empty($sellerAtttributeName)) {
         //Seller attribute not configured
         return false;
     }
     $pageId = $request->getPathInfo();
     $param = explode('/', $pageId);
     $seller = '';
     if (count($param) > 1 and strtolower($param[1]) == $seoDisplay and !empty($param[2])) {
         //Identify Seller
         $sellerPage = $param[2];
         if (strpos($sellerPage, '.') !== false) {
             $sellerPage = urldecode(substr($sellerPage, 0, -5));
             if ($sellerPage) {
                 $seller = str_replace('-', ' ', $sellerPage);
             } else {
                 return false;
             }
         } else {
             $seller = $sellerPage;
         }
     } else {
         return false;
     }
     if ($seller) {
         Mage::register('seller_company', $seller);
         $realModule = 'Cybage_Marketplace';
         $request->setModuleName('marketplace');
         $request->setRouteName('marketplace');
         $request->setControllerName('seller');
         $request->setActionName('sellerinfo');
         $request->setControllerModule($realModule);
         $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, ltrim($request->getRequestString(), '/'));
         $file = Mage::getModuleDir('controllers', $realModule) . DS . 'SellerController.php';
         include $file;
         //compatibility with 1.3
         $class = $realModule . '_SellerController';
         $controllerInstance = new $class($request, $this->getFront()->getResponse());
         $request->setDispatched(true);
         $controllerInstance->dispatch('sellerinfo');
     }
     return true;
 }
 /**
  * Validate and Match FAQ 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 = 'faq';
     $identifier = trim(str_replace('/faq/', '', $request->getPathInfo()), '/');
     $condition = new Varien_Object(array('identifier' => $identifier, 'continue' => true));
     Mage::dispatchEvent('faq_controller_router_match_before', array('router' => $this, 'condition' => $condition));
     if ($condition->getRedirectUrl()) {
         Mage::app()->getFrontController()->getResponse()->setRedirect($condition->getRedirectUrl())->sendResponse();
         $request->setDispatched(true);
         return true;
     }
     if (!$condition->getContinue()) {
         return false;
     }
     $category = Mage::getModel('zeon_faq/category');
     $categoryId = $category->checkIdentifier($identifier, Mage::app()->getStore()->getId());
     if (!$categoryId && $identifier == 'mfaq') {
         $request->setModuleName('faq')->setControllerName('index')->setActionName('index');
         if (Mage::helper('zeon_faq')->getIsDisplayMfaq()) {
             $request->setParam('mfaq', 1);
         }
         $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, $router);
         return true;
     } elseif ($categoryId) {
         $request->setModuleName('faq')->setControllerName('index')->setActionName('index')->setParam('category_id', $categoryId);
         $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, $router . '/' . $identifier);
         return true;
     } else {
         return false;
     }
     return false;
 }
Example #14
0
 public function match(Zend_Controller_Request_Http $request)
 {
     if (!AO::isInstalled()) {
         AO::app()->getFrontController()->getResponse()->setRedirect(AO::getUrl('install'))->sendResponse();
         exit;
     }
     $identifier = trim($request->getPathInfo(), '/');
     $page = AO::getModel('cms/page');
     $pageId = $page->checkIdentifier($identifier, AO::app()->getStore()->getId());
     if (!$pageId) {
         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', $pageId);
     $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, $identifier);
     return true;
 }
Example #15
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)
 {
     $urlKey = trim($request->getPathInfo(), '/');
     if ($urlKey === 'splash-sitemap.xml') {
         $request->setModuleName($this->_getFrontName())->setControllerName('sitemap')->setActionName('index');
         return true;
     }
     $page = Mage::getModel('splash/page')->setStoreId(Mage::app()->getStore()->getId())->loadByUrlKey($urlKey);
     if (!$page->getId() || !$page->isEnabled()) {
         return false;
     }
     Mage::getConfig()->setNode('mageworx_seo/seosuite/disable_layered_rewrites', true, true);
     Mage::app()->getStore()->setConfig('mageworx_seo/seosuite/disable_layered_rewrites', true);
     Mage::register('splash_page', $page);
     $request->setModuleName($this->_getFrontName())->setControllerName('page')->setActionName('view')->setParam('page_id', $page->getId());
     $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, $urlKey);
     return true;
 }
 public function match(Zend_Controller_Request_Http $request)
 {
     if (!Mage::isInstalled()) {
         Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('install'))->sendResponse();
         exit;
     }
     $route = Mage::helper('prodfaqs')->getListIdentifier();
     $identifier = trim($request->getPathInfo(), '/');
     $identifier = str_replace(Mage::helper('prodfaqs')->getSeoUrlSuffix(), '', $identifier);
     if ($identifier == $route) {
         $request->setModuleName('prodfaqs')->setControllerName('index')->setActionName('index');
         return true;
     } elseif (strpos($identifier, $route . '/search') === 0) {
         $request->setModuleName('prodfaqs')->setControllerName('index')->setActionName('search')->setParam('id', (int) $request->getParam('id'));
         return true;
     } elseif (strpos($identifier, $route) === 0 && strlen($identifier) > strlen($route) && strpos($identifier, '-questions') === false) {
         $identifier = trim(substr($identifier, strlen($route)), '/');
         $topicId = Mage::getModel('prodfaqs/topic')->checkIdentifier($identifier, Mage::app()->getStore()->getId());
         if (!$topicId) {
             return false;
         }
         $request->setModuleName('prodfaqs')->setControllerName('index')->setActionName('view')->setParam('id', $topicId);
         $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, $identifier);
         return true;
     } elseif (strpos($identifier, $route) === 0 && strpos($identifier, '-questions') >= 0) {
         $product_identifier = trim(substr($identifier, strlen($route)), '/');
         $product_identifier = str_replace('-questions', '', $product_identifier);
         //Now get the product id from this identifier
         $store_id = Mage::app()->getStore()->getId();
         $collection = Mage::getResourceModel('catalog/product_collection')->setStoreId($store_id);
         Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection);
         Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
         $collection->addAttributeToFilter(array(array('attribute' => 'url_key', 'eq' => $product_identifier)));
         $data = $collection->getData();
         if ($data) {
             $prod_id = $data[0]['entity_id'];
             $request->setModuleName('prodfaqs')->setControllerName('index')->setActionName('productfaqs')->setParam('id', $prod_id);
             return true;
         } else {
             return false;
         }
     }
     return false;
 }
Example #17
0
 /**
  * Validate and Match Lucky Draw Program 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;
     }
     $urlKey = trim($request->getPathInfo(), '/');
     if (!$urlKey) {
         return false;
     }
     $program = Mage::getModel('luckydraw/program');
     $programId = $program->checkProgramUrlKey($urlKey, Mage::app()->getStore()->getId());
     if (!$programId) {
         return false;
     }
     $request->setModuleName('luckydraw')->setControllerName('index')->setActionName('index')->setParam('id', $programId);
     $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, $urlKey);
     return true;
 }
Example #18
0
 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['deal'] = new Varien_Object(array('model' => 'deal/deal', 'controller' => 'deal', 'action' => 'view', 'param' => 'id'));
     foreach ($check as $key => $settings) {
         $model = Mage::getModel($settings->getModel());
         $id = $model->checkUrlKey($urlKey, Mage::app()->getStore()->getId());
         if ($id) {
             $request->setModuleName('deal')->setControllerName($settings->getController())->setActionName($settings->getAction())->setParam($settings->getParam(), $id);
             $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, $urlKey);
             return true;
         }
     }
     return false;
 }
Example #19
0
 /**
  * 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(), '/');
     //URL Search after habbeda
     $url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
     //$identifier = trim($request->getPathInfo(), '/');
     if (strpos($url, "/alle/") <= 0 && strpos($url, "/all/") <= 0) {
         return false;
     }
     // if successfully gained url parameters, use them and dispatch ActionController action
     $request->setRouteName('landingpagesaa')->setModuleName('landingpagesaa')->setControllerName('index')->setActionName('index');
     //->setParam('test', "test");
     $urlpara = explode("/filter/", $url);
     if (!empty($urlpara[1])) {
         $urlparas = explode("?", $urlpara[1]);
         // Parse url params
         $params = explode('/', trim($urlparas[0], '/'));
         $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;
             }
         }
         // Add post params to parsed ones from url
         // Usefull to easily override params
         $layerParams += $request->getPost();
         // Add params to request
         $request->setParams($layerParams);
         // Save params in registry - used later to generate links
         Mage::register('layer_params', $layerParams);
     }
     $request->setRequestUri($url);
     $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, $identifier);
     return true;
 }
Example #20
0
 public function match(Zend_Controller_Request_Http $request)
 {
     $identifier = trim($request->getPathInfo(), '/');
     $condition = new Varien_Object(array('identifier' => $identifier, 'continue' => true));
     $identifier = $condition->getIdentifier();
     if ($condition->getRedirectUrl()) {
         Mage::app()->getFrontController()->getResponse()->setRedirect($condition->getRedirectUrl())->sendResponse();
         $request->setDispatched(true);
         return true;
     }
     if (!$condition->getContinue()) {
         return false;
     }
     $page = Mage::getModel('searchlandingpage/page')->checkIdentifier($identifier);
     if (!$page) {
         return false;
     }
     $request->setModuleName('searchlandingpage')->setControllerName('page')->setActionName('view')->setParam('q', $page->getQueryText())->setParam('id', $page->getId());
     $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, $identifier);
     return true;
 }
Example #21
0
 /**
  * Validate and Match News and modify request
  *
  * @param Zend_Controller_Request_Http $request
  * @return bool
  */
 public function match(Zend_Controller_Request_Http $request)
 {
     $identifier = trim($request->getPathInfo(), '/');
     $condition = new Varien_Object(array('identifier' => $identifier, 'continue' => true));
     Mage::dispatchEvent('magna_news_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;
     }
     $news = Mage::getModel('magna_news/news');
     $newsId = $news->checkIdentifier($identifier, Mage::app()->getStore()->getId());
     if (!$newsId) {
         return false;
     }
     $request->setModuleName('magna_news')->setControllerName('view')->setActionName('show')->setParam('news_id', $newsId);
     $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, $identifier);
     return true;
 }
Example #22
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::isInstalled()) {
         Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('install'))->sendResponse();
         exit;
     }
     $identifier = trim($request->getPathInfo(), '/');
     $condition = new Varien_Object(array('identifier' => $identifier, 'continue' => true));
     if ($condition->getRedirectUrl()) {
         Mage::app()->getFrontController()->getResponse()->setRedirect($condition->getRedirectUrl())->sendResponse();
         $request->setDispatched(true);
         return true;
     }
     if (!$condition->getContinue()) {
         return false;
     }
     if ($identifier != Mage::helper('productquestions')->faqsPageUrlKey()) {
         return false;
     }
     $request->setModuleName('productquestions')->setControllerName('faq')->setActionName('index');
     $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, $identifier);
     return true;
 }
 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])) {
         return false;
     }
     if (!isset($parts[1])) {
         return false;
     }
     $productCollection = Mage::getModel('catalog/product')->getCollection()->addAttributeToFilter('url_path', $parts[1]);
     if (!$productCollection->count()) {
         return false;
     }
     $product = $productCollection->getFirstItem();
     $product->load($product->getId());
     $request->setModuleName('askit')->setControllerName('index')->setActionName('index')->setParam('productId', $product->getId());
     $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, $identifier);
     return true;
 }
Example #24
0
 /**
  * Match the request
  *
  * @param Zend_Controller_Request_Http $request
  * @return boolean
  */
 public function match(Zend_Controller_Request_Http $request)
 {
     //checking before even try to find out that current module
     //should use this router
     if (!$this->_beforeModuleMatch()) {
         return false;
     }
     $this->fetchDefault();
     $front = $this->getFront();
     $path = trim($request->getPathInfo(), '/');
     if ($path) {
         $p = explode('/', $path);
     } else {
         $p = explode('/', $this->_getDefaultPath());
     }
     // get module name
     if ($request->getModuleName()) {
         $module = $request->getModuleName();
     } else {
         if (!empty($p[0])) {
             $module = $p[0];
         } else {
             $module = $this->getFront()->getDefault('module');
             $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, '');
         }
     }
     if (!$module) {
         if (Mage::app()->getStore()->isAdmin()) {
             $module = 'admin';
         } else {
             return false;
         }
     }
     /**
      * Searching router args by module name from route using it as key
      */
     $modules = $this->getModuleByFrontName($module);
     if ($modules === false) {
         return false;
     }
     // checks after we found out that this router should be used for current module
     if (!$this->_afterModuleMatch()) {
         return false;
     }
     /**
      * Going through modules to find appropriate controller
      */
     $found = false;
     foreach ($modules as $realModule) {
         $request->setRouteName($this->getRouteByFrontName($module));
         // get controller name
         if ($request->getControllerName()) {
             $controller = $request->getControllerName();
         } else {
             if (!empty($p[1])) {
                 $controller = $p[1];
             } else {
                 $controller = $front->getDefault('controller');
                 $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, ltrim($request->getOriginalPathInfo(), '/'));
             }
         }
         // get action name
         if (empty($action)) {
             if ($request->getActionName()) {
                 $action = $request->getActionName();
             } else {
                 $action = !empty($p[2]) ? $p[2] : $front->getDefault('action');
             }
         }
         //checking if this place should be secure
         $this->_checkShouldBeSecure($request, '/' . $module . '/' . $controller . '/' . $action);
         $controllerClassName = $this->_validateControllerClassName($realModule, $controller);
         if (!$controllerClassName) {
             continue;
         }
         // instantiate controller class
         $controllerInstance = Mage::getControllerInstance($controllerClassName, $request, $front->getResponse());
         if (!$controllerInstance->hasAction($action)) {
             continue;
         }
         $found = true;
         break;
     }
     /**
      * if we did not found any suitable
      */
     if (!$found) {
         if ($this->_noRouteShouldBeApplied()) {
             $controller = 'index';
             $action = 'noroute';
             $controllerClassName = $this->_validateControllerClassName($realModule, $controller);
             if (!$controllerClassName) {
                 return false;
             }
             // instantiate controller class
             $controllerInstance = Mage::getControllerInstance($controllerClassName, $request, $front->getResponse());
             if (!$controllerInstance->hasAction($action)) {
                 return false;
             }
         } else {
             return false;
         }
     }
     // set values only after all the checks are done
     $request->setModuleName($module);
     $request->setControllerName($controller);
     $request->setActionName($action);
     $request->setControllerModule($realModule);
     // set parameters from pathinfo
     for ($i = 3, $l = sizeof($p); $i < $l; $i += 2) {
         $request->setParam($p[$i], isset($p[$i + 1]) ? urldecode($p[$i + 1]) : '');
     }
     // dispatch action
     $request->setDispatched(true);
     $controllerInstance->dispatch($action);
     return true;
 }
Example #25
0
 public function testGetAliases()
 {
     $this->_request->setAlias('controller', 'var1');
     $this->_request->setAlias('action', 'var2');
     $this->assertSame(array('controller' => 'var1', 'action' => 'var2'), $this->_request->getAliases());
 }
Example #26
0
 /**
  * Match controller name
  *
  * @param Zend_Controller_Request_Http $request
  * @param string $param
  * @return string
  */
 protected function _matchControllerName(Zend_Controller_Request_Http $request, $param)
 {
     if ($request->getControllerName()) {
         $controller = $request->getControllerName();
     } else {
         if (!empty($param)) {
             $controller = $param;
         } else {
             $controller = $this->getFront()->getDefault('controller');
             $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, ltrim($request->getOriginalPathInfo(), '/'));
         }
     }
     return $controller;
 }
Example #27
0
 /**
  * Match the request.
  *
  * @param Zend_Controller_Request_Http $request The request object.
  * 
  * @return boolean
  */
 public function match(Zend_Controller_Request_Http $request)
 {
     if (!$this->_beforeModuleMatch()) {
         return false;
     }
     $this->fetchDefault();
     $front = $this->getFront();
     $path = trim($request->getPathInfo(), '/');
     $module = null;
     if ($path) {
         $parts = explode('/', $path);
     } else {
         $parts = explode('/', $this->_getDefaultPath());
     }
     // get module name
     if ($request->getModuleName()) {
         $module = $request->getModuleName();
     }
     if (!$module) {
         if (Mage::app()->getStore()->isAdmin()) {
             return false;
         }
     }
     // Does module match front name
     $loadByPath = false;
     if ($module != Mage::helper('link')->getFrontName()) {
         // If not, check the table for a match on the path
         if ($link = Mage::getModel('link/node')->loadByRequestPath($path)) {
             $module = Mage::helper('link')->getFrontName();
             $loadByPath = true;
         }
     }
     // Translate frontName to module
     $realModule = Mage::helper('link')->getModuleName();
     $request->setRouteName($this->getRouteByFrontName($module));
     // Get controller name
     $controller = $front->getDefault('controller');
     // Get action name
     $action = $front->getDefault('action');
     if ($loadByPath) {
         $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, ltrim(implode('/', $parts), '/'));
     } else {
         $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, ltrim(implode('/', array_slice($parts, 1)), '/'));
     }
     // Checking if this place should be secure
     $this->_checkShouldBeSecure($request, "/{$module}/{$controller}/{$action}");
     $controllerClassName = $this->_validateControllerClassName($realModule, $controller);
     if (!$controllerClassName) {
         return false;
     }
     // Instantiate controller class
     $controllerInstance = Mage::getControllerInstance($controllerClassName, $request, $front->getResponse());
     if (!$controllerInstance->hasAction($action)) {
         return false;
     }
     // Set values
     $request->setModuleName($module);
     $request->setControllerName($controller);
     $request->setActionName($action);
     $request->setControllerModule($realModule);
     // Set parameters from pathinfo
     for ($i = 1, $length = sizeof($parts); $i < $length; $i += 2) {
         $request->setParam($parts[$i], isset($parts[$i + 1]) ? urldecode($parts[$i + 1]) : '');
     }
     // Dispatch action
     $request->setDispatched(true);
     $controllerInstance->dispatch($action);
     return true;
 }
Example #28
0
 /**
  * Validate and Match shop view and modify request
  */
 public function match(Zend_Controller_Request_Http $request)
 {
     $front = $this->getFront();
     if (!Mage::isInstalled()) {
         Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('install'))->sendResponse();
         exit;
     }
     $routerConfig = Mage::getStoreConfig('shopbybrand/general/router');
     $_end = Mage::getStoreConfig(Magestore_Shopbybrand_Helper_Data::XML_FRONTEND_LINK);
     $_path = urldecode(trim($request->getPathInfo(), '/'));
     if (strpos($_path, $_end)) {
         $_link_params = explode('/', str_replace($_end, '/', $_path), -1);
     } else {
         $_link_params = explode('/', $_path . '/', -1);
     }
     $_count_params = count($_link_params);
     $found = false;
     if (isset($_link_params[0])) {
         $router = $_link_params[0];
         if ($router == $routerConfig) {
             $request->setRouteName('shopbybrand')->setControllerModule('Magestore_Shopbybrand')->setModuleName('brand');
             $module = 'shopbybrand';
             if (isset($_link_params[1]) && $_link_params[1]) {
                 $request->setControllerName($_link_params[1]);
             }
             if (isset($_link_params[2]) && $_link_params[2]) {
                 $request->setActionName($_link_params[2]);
             }
             // get controller name
             if ($request->getControllerName()) {
                 $controller = $request->getControllerName();
             } else {
                 if (!empty($_link_params[1])) {
                     $controller = $_link_params[1];
                 } else {
                     $controller = $front->getDefault('controller');
                     $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, ltrim($request->getOriginalPathInfo(), '/'));
                 }
             }
             // get action name
             if (empty($action)) {
                 if ($request->getActionName()) {
                     $action = $request->getActionName();
                 } else {
                     $action = !empty($_link_params[2]) ? $_link_params[2] : $front->getDefault('action');
                 }
             }
             //checking if this place should be secure
             $this->_checkShouldBeSecure($request, '/' . $module . '/' . $controller . '/' . $action);
             $controllerClassName = $this->_validateControllerClassName('Magestore_Shopbybrand', $controller);
             if (!$controllerClassName) {
                 return false;
             }
             $controllerInstance = Mage::getControllerInstance($controllerClassName, $request, $front->getResponse());
             if (!$controllerInstance->hasAction($action)) {
                 return false;
             }
             $found = true;
         }
     }
     if (!$found) {
         if ($this->_noRouteShouldBeApplied()) {
             $controller = 'index';
             $action = 'noroute';
             $controllerClassName = $this->_validateControllerClassName($realModule, $controller);
             if (!$controllerClassName) {
                 return false;
             }
             // instantiate controller class
             $controllerInstance = Mage::getControllerInstance($controllerClassName, $request, $front->getResponse());
             if (!$controllerInstance->hasAction($action)) {
                 return false;
             }
         } else {
             return false;
         }
     } else {
         return true;
     }
 }
Example #29
0
 public function match(Zend_Controller_Request_Http $request)
 {
     //checkings before even try to findout that current module should use this router
     if (!$this->_beforeModuleMatch()) {
         return false;
     }
     $this->fetchDefault();
     $front = $this->getFront();
     $p = explode('/', trim($request->getPathInfo(), '/'));
     // get module name
     if ($request->getModuleName()) {
         $module = $request->getModuleName();
     } else {
         if (!empty($p[0])) {
             $module = $p[0];
         } else {
             $module = $this->getFront()->getDefault('module');
             $request->setAlias('rewrite_request_path', '');
         }
     }
     if (!$module) {
         if (App_Main::isAdmin()) {
             $module = 'admin';
         }
     }
     if (empty($module)) {
         return false;
     }
     // Searching router args by module name from route using it as key
     $modules = $this->getModuleByFrontName($module);
     // If we did not found anything  we searching exact this module name in array values
     if ($modules === false) {
         if ($moduleFrontName = $this->getModuleByName($module, $this->_modules)) {
             $modules = array($module);
             $module = $moduleFrontName;
         }
     }
     if (empty($modules)) {
         return false;
     }
     /**
      * Going through modules to find appropriate controller
      */
     $found = false;
     foreach ($modules as $realModule) {
         $request->setRouteName($this->getRouteByFrontName($module));
         // get controller name
         if ($request->getControllerName()) {
             $controller = $request->getControllerName();
         } else {
             if (!empty($p[1])) {
                 $controller = $p[1];
             } else {
                 $controller = $front->getDefault('controller');
                 $request->setAlias('rewrite_request_path', ltrim($request->getOriginalPathInfo(), '/'));
             }
         }
         // get action name
         if (empty($action)) {
             if ($request->getActionName()) {
                 $action = $request->getActionName();
             } else {
                 $action = !empty($p[2]) ? $p[2] : $front->getDefault('action');
             }
         }
         //checking if this place should be secure
         $this->_checkShouldBeSecure($request, '/' . $module . '/' . $controller . '/' . $action);
         $controllerClassName = $this->_validateControllerClassName($realModule, $controller);
         if (!$controllerClassName) {
             continue;
         }
         // instantiate controller class
         $controllerInstance = new $controllerClassName($request, $front->getResponse());
         if (!$controllerInstance->hasAction($action)) {
             continue;
         }
         $found = true;
         break;
     }
     /**
      * if we did not found any siutibul
      */
     if (!$found) {
         if ($this->_noRouteShouldBeApplied()) {
             $controller = 'index';
             $action = 'noroute';
             $controllerClassName = $this->_validateControllerClassName($realModule, $controller);
             if (!$controllerClassName) {
                 return false;
             }
             // instantiate controller class
             $controllerInstance = new $controllerClassName($request, $front->getResponse());
             if (!$controllerInstance->hasAction($action)) {
                 return false;
             }
         } else {
             return false;
         }
     }
     // set values only after all the checks are done
     $request->setModuleName($module);
     $request->setControllerName($controller);
     $request->setActionName($action);
     $request->setControllerModule($realModule);
     // set parameters from pathinfo
     for ($i = 3, $l = sizeof($p); $i < $l; $i += 2) {
         $request->setParam($p[$i], isset($p[$i + 1]) ? $p[$i + 1] : '');
     }
     // dispatch action
     $request->setDispatched(true);
     $controllerInstance->dispatch($action);
     return true;
 }
Example #30
0
 /**
  * @param Zend_Controller_Request_Http $request
  * @return $this|Zend_Controller_Request_Http
  * @throws EcommerceTeam_Sln_Exception_Rewrite
  */
 protected function _oldRewrite(Zend_Controller_Request_Http $request)
 {
     /** @var $helper EcommerceTeam_Sln_Helper_Data */
     $helper = Mage::helper('ecommerceteam_sln');
     $separator = $helper->getConfigData('url_separator');
     $requestPath = trim($request->getPathInfo(), '/');
     $requestPath = Mage::helper('ecommerceteam_sln/request')->clearSuffix($requestPath);
     $path = explode('/', $requestPath);
     $filterKey = array_search($separator, $path);
     if ($filterKey !== false) {
         $filterParams = array_slice($path, $filterKey + 1);
         if (count($filterParams) % 2) {
             array_unshift($filterParams, 'attributes');
         }
         if ($filterKey) {
             $categoryUrlKey = implode('/', array_slice($path, 0, $filterKey));
         } else {
             $categoryUrlKey = implode('/', $path);
         }
         if ($filterKey && $categoryUrlKey) {
             if (Mage::getStoreConfig("catalog/seo/category_url_suffix") == "/") {
                 $categoryUrlKey = $categoryUrlKey . '/';
             } else {
                 $categoryUrlKey = trim($categoryUrlKey, '/') . $helper->getUrlSuffix();
             }
             /** @var $urlRewriteModel Mage_Core_Model_Url_Rewrite */
             $urlRewriteModel = Mage::getModel('core/url_rewrite');
             if ($helper->isMagentoEnterprise()) {
                 $urlRewriteModel = Mage::getModel('enterprise_urlrewrite/url_rewrite');
             }
             $urlRewriteModel->setData('store_id', Mage::app()->getStore()->getId());
             $targetPath = $urlRewriteModel->loadByRequestPath(array($categoryUrlKey))->getTargetPath();
             if (!$urlRewriteModel->getData('category_id')) {
                 throw new EcommerceTeam_Sln_Exception_Rewrite($this->__("Can't resolve category request path."));
             }
             $currentCategory = Mage::getModel('catalog/category')->load($urlRewriteModel->getData('category_id'));
             Mage::getSingleton('catalog/layer')->setCurrentCategory($currentCategory);
             $itemsLength = count($filterParams);
             $request->setParam('layered_navigation_base_url', Mage::getBaseUrl('web') . $urlRewriteModel->getRequestPath());
             for ($i = 0; $i < $itemsLength; $i += 2) {
                 $request->setParam($filterParams[$i], isset($filterParams[$i + 1]) ? explode(',', $filterParams[$i + 1]) : null);
             }
             if ($targetPath) {
                 $request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, trim($request->getPathInfo(), '/'));
                 $request->setPathInfo($targetPath);
                 return $request;
             }
         }
     }
     return $this;
 }