/** * 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; }
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(); }
/** * 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)); }
/** * @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(); }
public function getActive() { if ($this->_attributeIsMultiple()) { return in_array($this->getValue(), $this->_getCurrentValues()); } return parent::getActive(); }
/** * 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(); }
/** * 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); }
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); }
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(); }
/** * 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; }
public function testGetValueString() { $this->assertEquals('valuePart1,valuePart2', $this->_model->getValueString()); }
public function getRemoveUrl2() { return str_replace('?', '?1', parent::getRemoveUrl()); }
/** * @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); }
/** * Define options separator */ public function __construct() { parent::__construct(); $this->_optionsSeparator = Bubble_Layer_Helper_Data::OPTIONS_SEPARATOR; }