1

我在 EE 上,但我相信 CE 的问题是一样的。我想做的事情似乎很简单。我希望类别页面左侧导航中的所有横幅都显示在过滤器导航上方。我尝试的是通过添加 after="-" 调用来更改 XML 文件(在 EE 的情况下为 search.xml,在 CE 的情况下为 catalog.xml)。

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

然而,这并没有改变任何东西,横幅仍然在分层导航下方加载。

如果我将小部件设置为加载到“所有页面”的左列中,它将正确加载到列的顶部。此解决方案是不可取的,因为它还会在主页上加载小部件。我们只希望这会影响类别页面。

我还可以一起删除 XML 块并将其作为横幅加载到小部件中,这样我就可以将其放置在左栏中的任何位置。This is also undesirable as it breaks our AJAX loading of the page when a layered navigation option is selected.

小部件/横幅块是否有名称,以便我可以在 XML 中说 after="widget.banner.block.name"?

4

2 回答 2

0

我发现这样做的唯一方法是在加载后使用 JQuery 将包含横幅的小部件推送到分层导航上方。

//Move Category Widget zone above the layered navigation
jQuery(".catalog-category-view .col2-left-layout .col-left .widget").insertBefore(jQuery(".catalog-category-view .col2-left-layout .col-left .block-layered-nav"));
于 2012-12-12T20:10:40.623 回答
-1

你应该给你的块命名,然后按照你的意愿对它们进行排序:

<block type="whatever" name="something" as="something" 
    template="bla.phtml" before="-" />

<block type="whatever" name="something_else" as="something_else" 
    template="bla.phtml" after="something" />

<block type="whatever" name="something_new" as="something_new" 
    template="bla.phtml" after="something_else" />

如果您想在主页的所有页面上显示小部件,您可以将其设置为显示在所有页面上,然后从主页中删除,如下所示:

1) 转到 CMS -> 页面,然后编辑主页

2)向页面添加布局更新,并专门删除小部件块:

<reference name="left">
    <action method="unsetChild"><alias>child_block_name</alias></action>
</reference>
于 2012-09-21T08:31:34.513 回答