我已经定制了目录高级搜索页面,该页面现在有一个特殊的可视化搜索引擎,可以找到所需的产品,返回它们的ID (通过ajax)。鉴于这些ID,我想基于Magento的默认搜索结果页面布局创建搜索结果列表。任何想法如何做到这一点?
更新 现在不能让它工作一段时间,所以我会粘贴我正在尝试的东西,也许你们中的一些人可以提供帮助。
public function getIdsFromSearchUrl($value){
$c = explode(',',$value);
if(count($c) > 1){ return $c; } else { return $value; }
}
// THE FOLLOWING FUNCTION'S ORIGINAL VERSION IS COMMENTED OUT UP ABOVE
public function getSearchCriterias()
{
$search = $this->_searchCriterias;
/* display id filtering criteria */
var_dump($search);
$search = array();
if(isset($_GET['productid'])) {
$value = $this->getIdsFromSearchUrl($_GET['productid']);
if(is_array($value)){
foreach($value as $v){
if(is_numeric($v)){
$product = Mage::getModel('catalog/product')->load($v);
var_dump($product->getId());
$search[] = array('name'=>'Name','value'=>$product->getName());
}
}
} else {
if(is_numeric($value)){
$product = Mage::getModel('catalog/product')->load($value);
$search[] = array('name'=>'Name','value'=>$product->getName());
}
}
}
var_dump($search);
$this->_searchCriterias = $search;
return $search;
}
Mage::getSingleton('catalog/product_visibility')->addVisibleInSearchFilterToCollection($this->_productCollection);
if(isset($_GET['productid'])){
$value = $this->getIdsFromSearchUrl($_GET['productid']);
if(is_array($value)){
foreach($value as $v){ if(is_numeric($v)){ $this->_productCollection->addProductFilter(Mage::getModel('catalog/product')->load($v),true); } }
} else { if(is_numeric($value)){ $this->_productCollection->addProductFilter(Mage::getModel('catalog/product')->load($value),true); } }
}
}
return $this->_productCollection;
}
语法正确,但没有显示结果。它仍然需要完成另一个领域,我不知道在哪里改变。
答案 0 :(得分:1)
Magento有一个名为高级搜索的默认功能,你需要通过一点点编码来启用它,下面提到如何做到这一点,
http://www.magentocommerce.com/wiki/5_-_modules_and_development/search_and_advanced_search/how_to_add_search_by_category_to_advanced_search http://www.magentocommerce.com/wiki/5_-_modules_and_development/search_and_advanced_search/how_to_add_search_by_multiple_categories_to_advanced_search