我在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块并将其作为横幅加载到窗口小部件中,这样我就可以将它放在左列的任何位置。这也是不合需要的,因为当选择分层导航选项时,它会破坏我们对页面的AJAX加载。
小部件/横幅广告块是否有名称,所以我可以在XML中指出=“widget.banner.block.name”?
答案 0 :(得分:0)
我发现这样做的唯一方法是使用JQuery在加载后推送包含分层导航上方横幅的Widget。
//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"));
答案 1 :(得分:-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" />
如果您想在主页的所有页面APART上显示小部件,您可以将其设置为在所有页面上显示,然后仅从主页中删除:
1)转到CMS - &gt;页面,然后编辑主页
2)向页面添加布局更新,并专门删除小部件块:
<reference name="left">
<action method="unsetChild"><alias>child_block_name</alias></action>
</reference>