フィルタがアクティブになると、0 個のアイテムが返されるため、「ショッピング オプション」には表示されなくなります。カスタム レイヤード ナビゲーションでは、これらのアイテムを取得して表示する必要があります。一部の拡張機能が既にこれを行っている (および項目の横にチェックボックスを提供している) ことは知っていますが、自分で行う方法を知りたいです。
2 に答える
実際のところ、アクティブなフィルターからアイテムを実際に取得することはできないため、これは非常に複雑な問題です。この「フィルター」はフィルターではなくなり、現在は状態になっているため、アイテムを提供できません(app\design\frontend\base\default\template\catalog\layer\state.phtml
filter.phtmlを参照して比較してください)。app\code\core\Mage\Catalog\Model\Layer
あなたができることは、モデルと少し戦うことです、そして特にapp\code\core\Mage\Catalog\Model\Resource\Eav\Mysql4\Layer\Filter\Attribute.php
。レイヤーの追加、レイヤーの製品のカウントに関するすべての作業を行うリソースです。ZendSelectオブジェクトと小さなmysqlに精通している場合は、レイヤードナビゲーションで必要なことを簡単に実現できます。
私の知る限り、ほとんどの商用モジュールはAJAXを使用して、いくつかの新しいレイヤードナビゲーション機能をシミュレートします(実際には混乱しません)。
Magentoの開発に慣れていない場合は、階層化されたナビゲーションから始めるのがおそらく最悪です...
フィルターの結果が 0 のときにレイヤード ナビゲーション フィルターを表示する場合は、製品属性を編集し、レイヤード ナビゲーションで使用 = フィルター可能 (結果なし) を設定するだけです。