예제 #1
0
파일: Router.php 프로젝트: victorkho/telor
 /**
  * @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;
 }
예제 #2
0
 /**
  * @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;
 }
예제 #3
0
 /**
  * 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);
 }