示例#1
0
 /**
  * @magentoDataFixture Mage/Catalog/_files/categories.php
  */
 public function testGetRemoveUrl()
 {
     Mage::app()->getRequest()->setRoutingInfo(array('requested_route' => 'x', 'requested_controller' => 'y', 'requested_action' => 'z'));
     $request = new Magento_Test_Request();
     $request->setParam('cat', 4);
     $this->_model->getFilter()->apply($request, new Mage_Core_Block_Text());
     $this->assertStringEndsWith('/x/y/z/?cat=3', $this->_model->getRemoveUrl());
 }
示例#2
0
 public function getRemoveUrl()
 {
     /** @var $category Mage_Catalog_Model_Category */
     $category = Mage::registry('current_category');
     /** @var $landingPage Hackathon_Layeredlanding_Model_Layeredlanding */
     $landingPage = Mage::registry('current_landingpage');
     if ($category->getId() && $landingPage && $landingPage->getId()) {
         $query = array($this->getFilter()->getRequestVar() => $this->getFilter()->getResetValue());
         $params['_current'] = true;
         $params['_use_rewrite'] = true;
         $params['_query'] = $query;
         $params['_escape'] = true;
         $attributeModel = Mage::getModel('eav/entity_attribute')->loadByCode(10, $this->getFilter()->getRequestVar());
         $attributeIds = array();
         foreach ($landingPage->getAttributes() as $attribute) {
             $attributeIds[] = $attribute->getAttributeId();
         }
         if ($attributeModel->getId() && in_array($attributeModel->getAttributeId(), $attributeIds)) {
             $parameters = parse_url(Mage::getUrl('*/*/*', $params), PHP_URL_QUERY);
             $categoryUrl = parse_url($category->getUrl(), PHP_URL_PATH);
             return sprintf('%s?%s', $categoryUrl, $parameters);
         }
         return Mage::getUrl('*/*/*', $params);
     }
     return parent::getRemoveUrl();
 }
示例#3
0
 /**
  * Get url for remove item from filter
  *
  * @return string
  */
 public function getRemoveUrl()
 {
     if (!$this->helper()->isEnabled()) {
         return parent::getRemoveUrl();
     }
     $values = $this->getFilter()->getValues();
     if (!empty($values)) {
         $tmp = array_diff($values, array($this->getValue()));
         if (!empty($tmp)) {
             $values = implode(Catalin_SEO_Helper_Data::MULTIPLE_FILTERS_DELIMITER, $tmp);
         } else {
             $values = null;
         }
     } else {
         $values = null;
     }
     if ($this->helper()->isCatalogSearch()) {
         $query = array('isLayerAjax' => null, $this->getFilter()->getRequestVar() => $values);
         $params['_current'] = true;
         $params['_use_rewrite'] = true;
         $params['_query'] = $query;
         $params['_escape'] = true;
         return Mage::getUrl('*/*/*', $params);
     }
     return $this->helper()->getFilterUrl(array($this->getFilter()->getRequestVar() => $values));
 }
示例#4
0
 /**
  * Get url for remove item from filter
  * Overwritten function from the original class to add rewrite to URL.
  *
  * @return string
  */
 public function getRemoveUrl()
 {
     $category = Mage::registry('current_category');
     $rewrite = Mage::getStoreConfig('web/seo/use_rewrites', Mage::app()->getStore()->getId());
     if ($rewrite == 0) {
         return parent::getRemoveUrl();
     }
     if (!is_object($category)) {
         return parent::getRemoveUrl();
     }
     return $this->getSpeakingFilterUrl(false);
 }
示例#5
0
 public function getRemoveUrl()
 {
     $request = Mage::app()->getRequest();
     if ($request->getModuleName() == 'catalogsearch') {
         return parent::getRemoveUrl();
     }
     $query = array($this->getFilter()->getRequestVar() => $this->getFilter()->getResetValue());
     $params['_current'] = true;
     $params['_use_rewrite'] = true;
     $params['_query'] = $query;
     $params['_escape'] = true;
     return Mage::helper('seosuite')->getLayerFilterUrl($params);
 }
示例#6
0
 public function getRemoveUrl()
 {
     if (!Mage::helper('magenotification')->checkLicenseKey('Seonavigation')) {
         return parent::getRemoveUrl();
     }
     if ($this->notUseRewrite()) {
         return parent::getRemoveUrl();
     }
     try {
         $requestPath = trim(Mage::app()->getRequest()->getRequestString(), '/');
         $model = Mage::getModel('seonavigation/seonavigation')->load($requestPath, 'request_path');
         if (!$model->getId()) {
             return parent::getRemoveUrl();
         }
         $params = array();
         if ($model->getQueryParams()) {
             $params = array_filter(unserialize($model->getQueryParams()));
         }
         if (isset($params[$this->getFilter()->getRequestVar()])) {
             unset($params[$this->getFilter()->getRequestVar()]);
         }
         if (isset($params['q'])) {
             unset($params['q']);
         }
         if (isset($params['id'])) {
             unset($params['id']);
         }
         if (isset($params['store'])) {
             unset($params['store']);
         }
         if (count($params)) {
             $rewrite = $this->createRewriteUrl($params, true);
             if ($rewrite && $rewrite->getId()) {
                 return Mage::getUrl(null, array('_direct' => $rewrite->getRequestPath()));
             }
         } elseif ($model->getClearUrl()) {
             return Mage::getUrl(null, array('_direct' => $model->getClearUrl()));
         }
     } catch (Exception $e) {
     }
     return parent::getRemoveUrl();
 }
示例#7
0
 public function getRemoveUrl2()
 {
     return str_replace('?', '?1', parent::getRemoveUrl());
 }