Magento xml布局 - 之前=“ - ”在1.4.2中不起作用

时间:2010-12-28 20:02:10

标签: magento

我有一些自定义扩展程序。它们显示在右侧边栏中,之前我将它们直接显示在侧边栏栏的下方,它显示在顶部,因为它在checkout.xml文件中有 before =“ - ”

自升级到1.4.2后,我的自定义扩展程序现在显示在侧边栏的顶部。我已将 after =“cart_sidebar”添加到扩展程序xml布局中,但无论如何它们仍会显示在侧边栏栏上方。

更改扩展程序的顺序,它们只相互移动,始终位于顶部 - 例如,如果我将追加=“ - ”添加到其中任何一个,它们只会出现在另一个之后自定义扩展程序,但仍位于购物车和其他默认侧边栏项目的顶部。

任何人都知道为什么?

更新

我打开了“模板路径提示”,对于我的自定义侧边栏块,显示模板路径的红色文本显示在侧边栏的下方,块应显示,但块的实际html出现在侧边栏的顶部还在!

alt text

1 个答案:

答案 0 :(得分:1)

在尝试找出这里发生的事情之前,你应该注意以下几点:

  • 所有Magento模块和扩展都按照它们的声明部分要求(app / etc / modules /中的xmls)的顺序加载。因此,依赖于其他模块的模块仅在它们之后加载。
  • 如果模块根据需要相同,则优先级为“Mage”命名空间,然后是自定义模块命名空间。内部命名空间优先级按字母顺序给出。
  • 在模块加载期间创建模块布局配置。因此,“之前”和“之后”指令的结果取决于先前加载的模块已经添加的块。即当某个块具有'before =“ - ”'指令时 - 它首先放置块,但是稍后来自下一个模块的其他块可以在该块之前使用它们的指令。

现在让我们回到你的案子。根据您的Magento配置,您的问题可能有多种原因。

首先我建议

  1. 关闭整个缓存 - 以便您立即看到所有更改
  2. 关闭所有扩展程序并仅使用其中一个进行测试
  3. 启用默认的Magento CE主题和皮肤(“默认”包)
  4. 然后检查以下情况:

    1. 也许你的布局方案被修改了,你的扩展程序没有引用正确的块(与“cart_sidebar”相同),以便将自己放入。
    2. 也许有些扩展会删除原始的cart_sidebar块,然后将其放在块的队列中。
    3. 也许有些CSS或JS规则只能在其他块之前直观地放置块(在原始html源中检查块顺序)
    4. 也许某些扩展正在修改布局组合规则。尝试只转动其中一个。然后尝试只转动其他一个并检查结果。