Magento:高级搜索结果的分层导航

时间:2012-11-06 09:51:37

标签: magento search filter catalog advanced-search

我需要在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和高级搜索之间的区别。

我基本上只是希望以任何可能的方式使用它。任何帮助或指导将不胜感激!

修改

我的产品属性设置正确如下:

enter image description here

1 个答案:

答案 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