/** * @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()); }
/** * 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; }
/** * 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; }
/** * @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); }