1

を使用してカテゴリのコレクションを取得しています

foreach(Mage::getModel('catalog/category')->getCollection() as $category)

これらのカテゴリごとに、並べ替え順序を取得する必要があります。どうすればよいですか?

カテゴリクラスに関連していると思われる唯一の関数はgetDefaultSortBy()です。これは、デフォルトの並べ替え順序(位置)でも選択された並べ替え順序(価格)でもないnews_from_dateを常に返すため、どこにあるのかわかりません。からその値を取得します。また、magentoバックエンドで、使用可能な並べ替え順序のリストを変更した場合でも、関数getAvailableSortByOptionsは常に同じ配列を返すことに気付きました。これらの2つの事実から、カテゴリ関数はある種のカテゴリ間のグローバル設定にアクセスしている必要があり、これは私には役に立たないと結論付けます。

特定のカテゴリごとに特定の並べ替え順序を選択する必要があります。これを取得する方法はありますか?または、独自のSQLを作成する必要がありますか?その場合、どのテーブルをクエリする必要がありますか?

magentoEnterprisever。を使用しています。1.11.1.0

4

1 に答える 1

1

答えを見つけました。当然、質問を投稿した直後に!

問題は、Mage::getModel('catalog/category')->getCollection() がすべてのカテゴリ属性を自動的にロードしないことです。手動で取得するものを指定する必要があります。だから、私はこれを置き換える必要があります:

foreach(Mage::getModel('catalog/category')->getCollection() as $category)

これとともに:

foreach(
    Mage::getModel('catalog/category')->getCollection()
    ->addAttributeToSelect('default_sort_by')
    ->addAttributeToSelect('available_sort_by')
    as $category
)
于 2012-12-14T13:18:07.720 に答える