搜索页面上的Magento Active Filters

时间:2013-01-10 05:03:13

标签: magento magento-1.7

我想在我的magento电子商务网站上实现有效过滤器。

我已成功实现它,但问题是,代码仅适用于类别页面,而不适用于搜索页面

这是我使用

的代码
<?php /*Create filter dependencies*/

$_activeFilters[] = array();

$_filters = Mage::getSingleton(‘Mage_Catalog_Block_Layer_State’)->getActiveFilters();

foreach ($_filters as $_filter):?>
<?php echo $this->stripTags($_filter->getLabel()) ?><a href=”<?php echo $_filter-     >getRemoveUrl() ?>” title=”<?php echo $this->__(‘Remove This Item’) ?>”><?php echo $this->__(‘Remove This Item’) ?></a>
<?php endforeach; ?>

我在toolbar.phtml中使用此代码。任何线索,为什么它不在搜索页面上工作。任何解决方案都会有很大的帮助。

谢谢,

苏希尔

2 个答案:

答案 0 :(得分:7)

您可以使用此代码在类别列表页面或搜索结果页面上提取过滤器

   <?php
   if(Mage::registry('current_category')) {
       $_filters = Mage::getSingleton('catalog/layer')->getState()->getFilters();
   } else {
       $_filters = Mage::getSingleton('catalogsearch/layer')->getState()->getFilters();
   }
   ?>

我在toolbar.phtml中使用了这个代码,在工具栏下面显示了可移动的过滤器,就像flipkart一样。

答案 1 :(得分:1)

问题在于这一行:

$_filters = Mage::getSingleton(‘Mage_Catalog_Block_Layer_State’)->getActiveFilters();

这会得到一个单例,它只在类别页面上包含必要的数据。

有关详细信息,请参阅此问题:Magento - How to add Layered Navigation to Advanced Search?