/** * @return bool */ protected function matchForwardShort() { $pageId = $this->request->getPathInfo(); $pageId = $this->getUrlHelper()->checkRemoveSuffix($pageId); $pageId = trim($pageId, '/'); $p = strrpos($pageId, '/'); if ($p) { $cat = substr($pageId, 0, $p); $params = substr($pageId, $p); } else { $cat = ''; $params = $pageId; } /** @var Amasty_Shopby_Model_Url_Parser $shortParser */ $shortParser = Mage::getModel('amshopby/url_parser'); $queryDelta = $shortParser->parseParams($params); if (is_array($queryDelta)) { $query = $this->request->getQuery(); $query = array_merge($query, $queryDelta); $this->request->setQuery($query); if (strlen($cat)) { // normal category $result = $this->forwardCategory($cat); } else { // root category $this->forwardShopby(); $result = true; } return $result; } return false; }
/** * @return bool */ protected function matchForwardShort() { $pageId = $this->request->getPathInfo(); $pageId = $this->getUrlHelper()->checkRemoveSuffix($pageId); $pageId = trim($pageId, '/'); $p = strrpos($pageId, '/'); if ($p) { $cat = substr($pageId, 0, $p); $params = substr($pageId, $p); } else { $cat = ''; $params = $pageId; } /** @var Amasty_Shopby_Model_Url_Parser $shortParser */ $shortParser = Mage::getModel('amshopby/url_parser'); $query = $shortParser->parseParams($params); if ($query === false) { return false; } $query = array_merge($this->request->getQuery(), $query); $this->request->setQuery($query); if (strlen($cat)) { // normal category try { $this->forwardCategory($cat); } catch (Mage_Core_Controller_Varien_Exception $e) { return false; } } else { // root category $this->forwardShopby(); } return true; }
/** * Set GET values method * * @param string|array $spec * @param null|mixed $value * @return Zend_Controller_Request_Http */ public function setQuery($spec, $value = null) { if (!is_array($spec) && $value === null) { unset($_GET[$spec]); return $this; } return parent::setQuery($spec, $value); }