Exemple #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());
 }
Exemple #2
0
 /**
  * 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;
 }
Exemple #3
0
 /**
  * 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;
 }
Exemple #4
0
 /**
  * @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);
 }