6

我想在我的 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=”&lt;?php echo $_filter-     >getRemoveUrl() ?>” title=”&lt;?php echo $this->__(‘Remove This Item’) ?>”&gt;<?php echo $this->__(‘Remove This Item’) ?></a>
<?php endforeach; ?>

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

谢谢,

寿司

4

2 回答 2

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一样。

于 2013-01-16T11:37:35.900 回答
1

问题在于这一行:

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

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

有关更多详细信息,请参阅此问题:Magento - 如何将分层导航添加到高级搜索?

于 2013-01-10T07:23:35.030 回答