1

我对模块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上下文使用?

谢谢

4

1 回答 1

2

before_body_end如果这是一个再营销脚本,这似乎是一个更合适的父块。至于为什么他们会覆盖核心页脚是供应商的问题。


编辑:提供推荐的最佳实践和上下文以响应 OP 评论:

理想情况下,一般来说,在 Magento 主题和模块开发中,核心团队添加的任何块 - 尤其是结构块不应被站点的最终实现者以外的任何人删除或修改(不考虑兼容性)(然后仅在适当的情况下)审议)。这样做的原因是其他核心代码以及第三方模块代码可能期望块实例以原始名称存在于布局中并具有完全相同的功能

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

于 2012-05-03T21:49:16.507 回答