我需要在Magento高级搜索结果页面上显示分层导航过滤器,就像在catalogsearch结果页面上一样。
我已经根据需要将XML块移动到catalogsearch_advanced_result:
<reference name="left">
<block type="catalogsearch/layer" name="catalogsearch.leftnav" template="catalog/layer/view.phtml"/>
</reference>
调用该块,但没有显示任何内容。我已经通过核心文件进行了追踪,发现在Catalog / Block / Layer / View.php中这个函数没有返回任何属性(第161行):
protected function _getFilterableAttributes()
{
$attributes = $this->getData('_filterable_attributes');
if (is_null($attributes)) {
$attributes = $this->getLayer()->getFilterableAttributes();
$this->setData('_filterable_attributes', $attributes);
}
return $attributes;
}
我将getFilterableAttributes()跟踪到Catalog / Model / Layer.php文件中,但是从这一点开始,很难找出catalogsearch和高级搜索之间的区别。
我基本上只是希望以任何可能的方式使用它。任何帮助或指导将不胜感激!
修改
我的产品属性设置正确如下:
答案 0 :(得分:3)
嘿,我已成功将分层导航带入高级搜索页面。
执行以下步骤:
第1步:在catalogsearch.xml
更新,如下所示
`
<label>Advanced Search Result</label>
<update handle="page_two_columns_right" />
<!-- Mage_Catalogsearch -->
<reference name="root">
<action method="setTemplate"><template>page/3columns.phtml</template></action>
</reference>
<reference name="left">
<block type="catalog/layer_view" name="catalog.leftnav" after="currency" template="catalog/layer/view.phtml"/>
</reference>`
第2步:清除缓存,你就可以了。
现在,为了获得过滤器,您可以在请求URL中进行一些修改
例如在高级搜索价格过滤器中,此类似price[from]=1&price[to]=100
而不是price=1,100