5

デフォルトでは、名前で並べ替えを設定しています。特定のカテゴリを選択すると、通常は価格で並べ替えられます。ただし、カテゴリ以外のオプションで買い物をするときに、デフォルトの並べ替え設定を割り当てる方法がわかりません。レイヤードナビゲーションに「サイズ」という属性があり、それをフィルターとして使用する場合は、価格で並べ替えたいと思います。

問題は、XMLでこれを行う方法があるかどうかだと思います。まず、カテゴリ以外のショッピングオプションの適切なスコープを呼び出す方法、次に並べ替え設定を変更する方法です。XMLでは不可能であり、さらに深く掘り下げる必要があると思いますが、アドバイスをいただければ幸いです。

4

2 に答える 2

0

app\code\core\Mage\Catalog\Model\Resource\Eav\Mysql4\Product に移動し、collection.php ファイルを開き、addAttributeToSort() という名前の関数を調べます。この関数は属性の並べ替えを担当します。テスト後にファイルを並べ替えてオーバーライドするためのロジック

于 2012-04-24T13:26:38.323 に答える
0

必要なことを達成するには、コア ファイルをオーバーライドする必要があると思います (コア ファイルを変更しないでください。ローカル コード プールにコピーするか、クラスを書き換えて、クラスをオーバーライドします)。デフォルトでは、順序は管理パネルで設定された並べ替え順序です。それを変更するには、そのロジックを変更する必要があります。

まず、Mage_Catalog_Block_Layer_Category クラスを調べました。これには、Mage_Catalog_Model_Layer_Filter_Category クラスへの参照があります。このクラスは、レイヤード ナビゲーションのカテゴリの取得を処理します。

あなたが見る必要があると思う関数は _getItemsData() です。$categories のロジックを変更して必要な順序を設定するか (これはおそらくより好ましいオプションです)、または $data 配列に配置される項目に対してカスタムの並べ替えを行うことができると思います。 .

于 2012-04-22T12:41:37.977 に答える