感谢您提前提供任何帮助。
我正在尝试更改侧箱出现在magento中的顺序。如:我的购物车,时事通讯,民意调查,最近浏览的产品。
目前我正在尝试将新闻稿框显示在最后。
在app / design / frontend / default / MY_TEMPLATE / layout / newsletter.xml
中我有以下代码:
<default>
<!-- Mage_Newsletter -->
<reference name="left">
<block type="newsletter/subscribe" name="newsletter" after="-" template="newsletter/subscribe.phtml" />
</reference>
</default>
然而,即使在代码中显示的after =“ - ”之后,新闻通讯仍然显示在第1位。
我刷新了所有缓存,并且每次进行更改都无法重新编制索引。
编辑:
更改
<reference name="left">
要
<reference name="right">
将其移至列表底部。但是,该列实际上位于左侧。任何想法为何有效?
答案 0 :(得分:1)
全部按左的sortedChildren
条目顺序排列。尝试删除自定义 newsletter.xml ,在自定义主题中创建 local.xml 文件,并添加以下内容:
<?xml version="1.0"?>
<layout>
<default>
<action method="unsetChild" block="left">
<block>left.newsletter</block>
</action>
<action method="insert" block="left">
<block>left.newsletter</block>
<sib />
<after>1</after>
</action>
</default>
</layout>
这样做是从已排序的子块列表中删除块引用,然后在最后再次添加它。参考。 Mage_Core_Block_Abstract::insert()
[link]
我为block
标记使用了未使用但有效的<action />
属性,而不是将其包含在<reference />
中。我相信效果是一样的。
答案 1 :(得分:-1)
检查左/右侧边栏中显示的块名称(在布局xml文件中)。 你可以找到这样的东西
<reference name="right">
<block type="catalog/product_compare_sidebar" after="cart_sidebar" name="catalog.compare.sidebar" template="catalog/product/compare/sidebar.phtml"/>
</reference>
上面的代码将显示购物车侧边栏,然后比较侧边栏。考虑这是您边栏中的最后一个块。如果您想在此块之后发送简报,则必须指定
<reference name="right">
<block type="newsletter/subscribe" name="newsletter" after="catalog.compare.sidebar" template="newsletter/subscribe.phtml" />
</reference>
您必须在元素标记之后/之前指定块名称。找到您的左/右边栏最后一个块名称,并在您的简报栏中使用该名称。