コード例 #1
0
ファイル: Swatch.php プロジェクト: quyip8818/Mag
 /**
  * Determine if we should use this block to render a state filter
  *
  * @param Mage_Catalog_Model_Layer_Filter_Item $filter
  * @return bool
  */
 public function shouldRender($filter)
 {
     $helper = Mage::helper('configurableswatches');
     if ($helper->isEnabled() && $filter->getFilter()->hasAttributeModel()) {
         if ($helper->attrIsSwatchType($filter->getFilter()->getAttributeModel())) {
             $this->_init($filter);
             if ($this->getSwatchUrl()) {
                 return true;
             }
         }
     }
     return false;
 }
コード例 #2
0
ファイル: Item.php プロジェクト: Mohitsahu123/layered-landing
 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
ファイル: Item.php プロジェクト: santhosh400/ecart
 /**
  * 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
ファイル: Item.php プロジェクト: xiaoguizhidao/devfashion
 /**
  * @return void
  */
 protected function _construct()
 {
     parent::_construct();
     $this->_helper = Mage::helper('ecommerceteam_sln');
     $this->_request = Mage::getSingleton('ecommerceteam_sln/request');
     $this->_filterableAttributes = $this->getHelper()->getLayer()->getFilterableAttributes();
 }
コード例 #5
0
 public function getActive()
 {
     if ($this->_attributeIsMultiple()) {
         return in_array($this->getValue(), $this->_getCurrentValues());
     }
     return parent::getActive();
 }
コード例 #6
0
 /**
  * Get filter item url
  *
  * @return string
  */
 public function getUrl()
 {
     $isActive = Mage::helper('atlanticbt_layerednavigation')->isCategoryLinksEnabled();
     if ($isActive && $this->getFilter()->getRequestVar() == "cat") {
         $url = Mage::getModel('catalog/category')->load($this->getValue())->getUrl();
         $request = Mage::getUrl('*/*/*', array('_current' => true, '_use_rewrite' => true));
         $query_string = strpos($request, '?') !== false ? substr($request, strpos($request, '?')) : '';
         return $url . $query_string;
     }
     return parent::getUrl();
 }
コード例 #7
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);
 }
コード例 #8
0
ファイル: Item.php プロジェクト: protechhelp/gamamba
 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);
 }
コード例 #9
0
ファイル: Item.php プロジェクト: bigtailbear14/rosstheme
 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();
 }
コード例 #10
0
ファイル: Productimg.php プロジェクト: cewolf2002/magento
 /**
  * Return URL for a matching swatch image from the global directory
  *
  * @param Mage_Catalog_Model_Product|Mage_Catalog_Model_Layer_Filter_Item $object
  * @param string $value
  * @param int $width
  * @param int $height
  * @param string $fileExt
  * @throws Mage_Core_Exception
  * @return string
  */
 public function getGlobalSwatchUrl($object, $value, $width = self::SWATCH_DEFAULT_WIDTH, $height = self::SWATCH_DEFAULT_HEIGHT, $fileExt = null)
 {
     if (is_null($fileExt)) {
         $fileExt = self::SWATCH_FILE_EXT;
     }
     // normalize to all lower case so that value can be used as array key below
     $value = Mage_ConfigurableSwatches_Helper_Data::normalizeKey($value);
     $defaultValue = $value;
     // default to no fallback value
     if ($object instanceof Mage_Catalog_Model_Layer_Filter_Item) {
         // fallback for swatches loaded for nav filters
         $source = $object->getFilter()->getAttributeModel()->getFrontend()->getAttribute()->getSource();
         foreach ($source->getAllOptions(false, true) as $option) {
             if ($option['value'] == $object->getValue()) {
                 $defaultValue = Mage_ConfigurableSwatches_Helper_Data::normalizeKey($option['label']);
                 break;
             }
         }
     } elseif ($object instanceof Mage_Catalog_Model_Product) {
         // fallback for swatches loaded for product view
         $mapping = $object->getChildAttributeLabelMapping();
         if (isset($mapping[$value]['default_label'])) {
             $defaultValue = $mapping[$value]['default_label'];
         }
     }
     do {
         $filename = Mage::helper('configurableswatches')->getHyphenatedString($value) . $fileExt;
         $swatchImage = $this->_resizeSwatchImage($filename, 'media', $width, $height);
         if (!$swatchImage && $defaultValue == $value) {
             return '';
             // no image found and no further fallback
         } elseif (!$swatchImage) {
             $value = $defaultValue;
             // fallback to default value
         } else {
             break;
             // we found an image
         }
     } while (true);
     return Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . $swatchImage;
 }
コード例 #11
0
ファイル: ItemTest.php プロジェクト: relue/magento2
 public function testGetValueString()
 {
     $this->assertEquals('valuePart1,valuePart2', $this->_model->getValueString());
 }
コード例 #12
0
 public function getRemoveUrl2()
 {
     return str_replace('?', '?1', parent::getRemoveUrl());
 }
コード例 #13
0
ファイル: Data.php プロジェクト: xiaoguizhidao/devfashion
 /**
  * @param Mage_Catalog_Model_Layer_Filter_Item $item
  * @param bool $singleMode
  * @return string
  */
 public function getUrl(Mage_Catalog_Model_Layer_Filter_Item $item, $singleMode = false)
 {
     $requestVar = $item->getFilter()->getRequestVar();
     $itemValue = $item->getValue();
     return $this->_getItemUrl($requestVar, $itemValue, $singleMode);
 }
コード例 #14
0
ファイル: Item.php プロジェクト: technomagegithub/magento
 /**
  * Define options separator
  */
 public function __construct()
 {
     parent::__construct();
     $this->_optionsSeparator = Bubble_Layer_Helper_Data::OPTIONS_SEPARATOR;
 }