覆盖magento搜索系统以允许随机顺序

时间:2013-08-22 08:48:07

标签: php magento magento-1.7

我需要找到一种方法来添加另一个排序顺序,以便我可以随机排序,或者我需要覆盖核心搜索系统以允许我实现相同的目标。 (或两者的某种组合?)

我知道magento搜索文件位于app / code / core / Mage / CatalogSearch /中,但我不确定哪些文件需要查看更改。

2 个答案:

答案 0 :(得分:1)

您要查找的文件是app/code/core/Mage/CatalogSearch/Model/Layer.php。该类的名称为Mage_Catalog_Model_Layer。在其中,您会看到函数prepareProductCollection($collection)

我建议你重写这个模型(参见thisthis)并覆盖上述功能并添加/实现排序逻辑。覆盖此函数的一个示例是

class XXX_XXX_Model_CatalogSearch_Layer extends Mage_CatalogSearch_Model_Layer
{
    public function prepareProductCollection($collection)
    {
        parent::prepareProductCollection($collection);
        $collection->addAttributeToSelect('some_attribute');
        $collection->setOrder('some_attribute', 'asc');
        return $this;
    }
}

答案 1 :(得分:0)

转到文件位置community \ app \ code \ core \ Mage \ CatalogSearch \ Block \ Result.php并找到函数public function setListOrders(),在这里您可以更改为自定义顺序