我希望进行正常的快速搜索,并增加一个功能:给定类别的结果排在第一位。
到目前为止,我已经 对其进行protected function _getProductCollection()
了修改Mage_CatalogSearch_Block_Result
并且可以正常工作,但是它忽略了我想在两组结果中应用的自定义搜索结果(例如按价格或名称)。
我的附加代码是:
$initial = $this->_productCollection->getAllIds();
$this->_productCollection->addCategoryFilter(Mage::getModel('catalog/category')->load(3));
$newids = $this->_productCollection->getAllIds();//$this->_productCollection->getAllIds();
$merged_ids = array_merge($newids, $initial);
$merged_ids = array_unique($merged_ids);
$this->_productCollection->addCategoryFilter(Mage::getModel('catalog/category')->load(2));
$this->_productCollection->getSelect()->order("find_in_set(e.entity_id,'".implode(',',$merged_ids)."')");
其中 cat 2 是根类别。
那么,集合在哪里进行排序?如果我把它移到那里,那应该可以解决我相信的问题(?)。