来自两个不同模块的 Magento block 覆盖

标签 magento overriding block

嗨,我在覆盖 magento 核心 block 时遇到了一些问题。在我的模块中,我需要覆盖 Mage_Catalog_Block_Navigation

<blocks>
  <catalog>
    <rewrite>
            <navigation>Mycompany_Mymodule_Catalog_Block_Navigation</navigation>
        </rewrite>
  </catalog>
</blocks>

但这已经被另一家公司的另一个 magento 扩展覆盖:
<blocks>
  <catalog>
    <rewrite>
        <navigation>Othercompany_Othermodule_Block_Navigation</navigation>
    </rewrite>
  </catalog>
</blocks>

两个扩展都覆盖了不同的方法,并且它们不知道彼此邻接,但是 magento 读取的是第二个公司覆盖而不是我的。我不想使用模块依赖项。有什么办法不破坏这两个扩展功能。

最佳答案

是的,你必须决定哪一个正式覆盖核心 block 。让那个继承没有进行覆盖的那个,并让那个继承核心的那个。

My_Custom_Block extends Other_Custom_Block
Other_Custom_Block extends Mage_Core_Block
Mage_Core_Block extends Whatever_Magento_Wants

编辑 config.xml 文件,以便只有 My_Custom_Block 是覆盖核心 block 的文件。

编辑
这是您需要的 XML:
<blocks>
  <catalog>
    <rewrite>
            <navigation>Mycompany_Mymodule_Catalog_Block_Navigation</navigation>
        </rewrite>
  </catalog>
</blocks>

关于来自两个不同模块的 Magento block 覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9311828/

相关文章:

java - 在 Java 中重写同步方法

c# - 无法密封,因为它不是覆盖

iOS Parse Block 结果存储在 UILabel 中

python : How to load column from multiblock csv tables?

magento - 在 CentOS6 中安装 Redis 服务器,如何?

html - Magento eshop 1.7.0.2 的响应式设计方法

magento - 在catalog.xml 中为类别 View 设置 "List/Grid"默认 View 模式

c++ - 重写虚拟方法时,Cat 与 Animal 不协变

Java、子进程和未读输出流 : When does it deadlock?

magento - Paypal 快速结帐 |错误的订单 ID : “x”