今日、私は属性に基づいていないレイヤードナビゲーションオプションを使用しています。これは評価用なので、フロントエンドは素敵な光沢のある星を表示できます。
これを行うには私が持っています:
- モジュールを作成しました
catalog_block_layer_viewを書き直しました
<blocks> <catalog> <rewrite> <layer_view>Bob_Catalog_Block_Layer_View</layer_view> </rewrite> </catalog> </blocks>
Mage_Catalog_Block_Layer_Viewを拡張するBob_Catalog_Block_Layer_Viewというクラスを作成しました
- _initBlocks()、getFilters()および_prepareLayout()を作成して、親クラスのメソッドをオーバーライドしました。これらはすべて、ある時点で親クラスを呼び出し、返されたデータの前に追加データを追加または追加します。
- フィルターブロックBob_Catalog_Block_Layer_Filter_Ratingを作成します。このフィルターブロックは、Mage_Catalog_Block_Layer_Filter_Abstractを、filterModelNameを設定し、その親を呼び出し、次にカスタムテンプレートを設定するコンストラクターで拡張します。
- Mage_Catalog_Model_Layer_Filter_Abstractを拡張し、apply()、getName()、_ getItemsData()を実装するモデルBob_Catalog_Model_Layer_Filter_Ratingを作成します。
これはすべて正常に動作します。素敵な光沢のある星がレイヤードナビゲーションに表示されます。
レイヤーステートテンプレートに関しては、カスタム評価フィルターを取得してレイアウトを変更するためにそこに条件を配置する必要があったため、何かが足りないという直感があります。また、私がする必要があるいくつかのこと(loadイベントがページネーションのコレクション数を台無しにしないように製品コレクションを複製する)は、私が丘を泳いでいるように感じさせます。
したがって、問題は、カスタムの非属性ベースのレイヤードナビゲーションフィルターを構築する方法について、より良い提案(またはおそらくブログ投稿wink)を得たかどうかです。
読んでくれてありがとう、
Si