2

我知道有人问过这个问题,但我一直找不到适合我的答案。我有一个我构建的自定义模块,它在提供搜索结果时也会搜索 CMS 静态页面。在这个模块中,我有一个更新布局 xml 的文件。我确定我的 xml 正在加载。出于某种原因,我尝试删除或取消设置分层导航并将其移动到右列都没有结果。以下是我的代码,我希望有人能帮助指出我的错误。谢谢!

<layout version = "0.1.0">

<catalog_category_default>
    <reference name="left">
        <action method="unsetChild"><name>catalog.leftnav</name></action>
    </reference>
    <reference name="right">
        <action method="insert"><child>catalog.leftnav</child></action>
    </reference>
</catalog_category_default>

<catalogsearch_result_index>
    <reference name="content">
        <block type="cmssearch/results" name="cms-search-results-view" after="search.result" template="cmssearch/cmssearchview.phtml">
        </block>
    </reference>
    <reference name="left">
        <!-- <remove name = "catalogsearch.leftnav" /> -->
        <action method="unsetChild"><name>catalogsearch.leftnav</name></action>
    </reference>
    <reference name="right">
        <!--  <block type="catalogsearch/layer" name="catalogsearch.leftnav" before="+" template="catalog/layer/view.phtml"/> -->
        <action method="insert"><child>catalogsearch.leftnav</child></action>
    </reference>
</catalogsearch_result_index>

<catalog_category_layered>
    <reference name="left">
        <action method="unsetChild"><name>catalog.leftnav</name></action>
    </reference>
    <reference name="right">
        <action method="insert"><child>catalog.leftnav</child></action>
    </reference>
</catalog_category_layered>

4

2 回答 2

6

我对社区版有类似的问题。尝试成功将分层导航“catalog.leftnav”移动到 mycustomblock,但随后出现错误

您不能多次定义相关名称“customattribute”

这样做<remove name="catalog.leftnav" />也从 mycustomblock 中删除了它。unsetChild 根本不起作用。Emil Stewart 解决方案,重命名块,效果很好。谢谢你!因此,如果有人在 CE 中遇到同样的问题,请执行以下操作。

  1. 在你的 local.xml 添加<remove name="catalog.leftnav" />
  2. 然后在您想要的位置添加目录/图层视图块,但更改名称

<block type="catalog/layer_view" name="yourname.catalog.leftnav" template="catalog/layer/view.phtml"/>

但我在这里找到了更好、更清洁的解决方案

    <reference name="left">
        <action method="unsetChild"><name>catalog.leftnav</name></action>
    </reference>
    <reference name="right">
        <action method="insert"><child>catalog.leftnav</child></action>
    </reference>
于 2013-03-13T21:24:26.077 回答
5

所以我真的想通了这个问题。我正在使用 Magento 企业版,企业版明确删除了分层导航以添加自己的分层导航。我应该注意到这一点,因为我有模板路径提示,并且它显示分层导航作为企业块。无论如何,这是导致问题的代码:

<catalogsearch_result_index>
    <reference name="left">
        <remove name="catalogsearch.leftnav"/>
        <block type="enterprise_search/catalogsearch_layer" name="enterprisesearch.leftnav" before="-" template="catalog/layer/view.phtml"/>
    </reference>
</catalogsearch_result_index>

<catalog_category_layered>
    <reference name="left">
        <remove name="catalog.leftnav"/>
        <block type="enterprise_search/catalog_layer_view" name="enterprisecatalog.leftnav" before="-" template="catalog/layer/view.phtml"/>
    </reference>
</catalog_category_layered>

我只需将我的名称引用更改为 enterprisecatalog.leftnav 即可解决此问题。

于 2013-02-12T17:54:08.843 回答