具有重复块名称的页脚覆盖

时间:2012-05-03 21:46:07

标签: magento layout

模块http://www.magentocommerce.com/magento-connect/visistat-connector-6644.html

我有一个非常奇怪的问题

它在default句柄中添加了一个块,如下所示:

<default>
    <reference name="after_body_start">
        <block type="page/html_footer" name="footer" template="sfcvisistat/tracking.phtml"/>
    </reference>
</default>

有效地使用与标准页脚相同的名称。

这不会破坏任何地方,但自定义模块从此定义获取页脚模板,从而删除了真正的页脚

我已经通过将名称更改为独特的内容来解决此问题,但是我很好奇是否有人有调试此问题的提示,为什么此定义可能会在reference上下文之外使用?

由于

1 个答案:

答案 0 :(得分:2)

如果这是再营销脚本,

before_body_end似乎是更合适的父块。至于为什么他们会覆盖核心页脚是供应商的问题。


编辑:根据OP评论提供推荐的最佳做法和背景:

理想情况下,通常在Magento主题和模块开发中,核心团队添加的任何块 - 特别是结构块不应被除站点最终实现者之外的任何人删除或修改(不考虑兼容性)(然后只有经过深思熟虑)。原因是其他核心代码以及第三方模块代码可能希望块实例存在于布局中的原始名称具有完全相同的功能

现在,原始帖子显示页脚的核心块类是相同的(page/html_foot),名称是相同的。处理布局时出现问题,设置块层次结构:不再可以从布局对象访问页脚块的原始(核心)实例(它只能通过其父级访问)和新的(自定义)页脚块instance将是任何布局后创建代码中引用的实例。