6

Magento e コマース サイトにアクティブ フィルターを実装したいと考えています。

私はそれを実装することに成功しましたが、問題は、コードがカテゴリページでのみ機能し、検索ページでは機能しないことです

これが私が使用しているコードです

<?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();
   }
   ?>

Flipkart のように、ツールバーの下に取り外し可能なフィルターを表示するために、toolbar.phtml でこのコードを使用しました。

于 2013-01-16T11:37:35.900 に答える
1

問題は次の行にあります。

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

これは、カテゴリ ページで必要なデータのみを含むシングルトンを取得します。

詳細については、この質問を参照してください: Magento - レイヤード ナビゲーションを高度な検索に追加する方法は?

于 2013-01-10T07:23:35.030 に答える