私はこれを理解しようと少し時間を費やしましたが、役に立ちませんでした。メーカーによってフィルタリングされた製品のコレクションを表示する一連のページがあり、たとえば、現在のメーカーの製品を含むカテゴリのリストを含む、これらの各ページの左側の列にナビゲーションが必要な場合は、どうすればよいでしょうか。ひどく遅いコードに頼ることなく、これを実装しようとしていますか?(数千の製品があります)。
これに似たものをループに入れて、各カテゴリを繰り返し、各カテゴリに対して返されるメーカーの結果があるかどうかを確認することもできますが、数百のカテゴリがあることを考えると、これはかなり遅くなります。
$category = $currentCategory;
$layer = Mage::getSingleton('catalog/layer');
$layer->setCurrentCategory($category);
$attributes = $layer->getFilterableAttributes();
$manufacturers = array();
foreach ($attributes as $attribute) {
if ($attribute->getAttributeCode() == 'manufacturer') {
$filterBlockName = 'catalog/layer_filter_attribute';
$result = Mage::app()->getLayout()->createBlock($filterBlockName)->setLayer($layer)->setAttributeModel($attribute)->init();
foreach($result->getItems() as $option) {
$manufacturers[$option->getValue()] = $option->getLabel();
}
}
}
誰かもっと良いアイデアがあれば、私はとても感謝しています。