我们重新设计了一家magento商店。那家商店有一个非常经济实惠的searchresult页面。
现在,在重新设计之后,搜索不再起作用了。
我将问题分解为List.php(Mage \ Catalog \ Block \ Product \ List.php),其中调用函数_getProductCollection()
以获得结果。此函数获取图层$layer = $this->getLayer();
,与旧版本存在主要区别:
public function getLayer()
{
$layer = Mage::registry('current_layer');
if ($layer) {
return $layer;
}
return Mage::getSingleton('catalog/layer');
}
在旧版本中设置了Mage::registry('current_layer');
。在新版本中没有设置!如果未设置,则会返回一个新的return Mage::getSingleton('catalog/layer');
,其中包含所有产品。
我想不出更进一步。如何在旧版本中找到此图层的设置位置? 我还能做什么?
答案 0 :(得分:2)
搜索图层模型由catalogsearch/layer
块注册,该块通常由catalogsearch.xml
布局文件添加到搜索页面中:
<catalogsearch_result_index translate="label">
<label>Quick Search Form</label>
<reference name="root">
<action method="setTemplate"><template>page/3columns.phtml</template></action>
</reference>
<reference name="left">
<block type="catalogsearch/layer" name="catalogsearch.leftnav" after="currency" template="catalog/layer/view.phtml"/>
</reference>
<!-- ... -->
</catalogsearch_result_index>
因为它确实不见了,你应该把它添加回你的布局。