在多个模块中覆盖magento块(以及如何忽略其他模块) [英] overriding a magento block in multiple modules (and how to ignore the other ones)
问题描述
在Magento中,您可以覆盖另一个模块(Magento Adminhtml模块中最常见)的一个模块中的块(或帮助器,模型等).现在,我遇到一个问题,我想覆盖已经被其他扩展名覆盖的块.有什么方法可以告诉magento在布局更新中类似于<remove>
标签的某些其他模块配置中忽略<rewrite>
标签吗?
In Magento you can override a block (or helper, or model, etc.) from one module in another one (most common from Magento Adminhtml module). Now I have the problem that I want to override a block that was already overriden by some other extension. Is there any way to tell magento to ignore the <rewrite>
tag in some other module configuration similary to the <remove>
tag in layout updates?
这是其他扩展名的配置:
Here is the configuration of the other extension:
<blocks>
<adminhtml>
<rewrite>
<catalog_product_grid>Symmetrics_DeliveryTime_Block_Adminhtml_Catalog_Product_Grid</catalog_product_grid>
</rewrite>
</adminhtml>
</blocks>
这是我的扩展程序的配置:
Here the configuration of my extension:
<blocks>
<adminhtml>
<rewrite>
<catalog_product_grid>Namespace_MyModule_Block_Adminhtml_Catalog_Product_Grid</catalog_product_grid>
</rewrite>
</adminhtml>
</blocks>
我将Symmetrics_DeliveryTime
中的块的功能集成到了自己的块中,现在我希望magento忽略该模块中的块覆盖.
I integrated the functionality of the block from Symmetrics_DeliveryTime
into my own block and now I want magento to ignore the block overriding from that module.
是否有任何magento方法可以做到这一点,或者是注释配置的唯一方法(这是我现在所做的),包括以后在更新该模块时遇到的所有麻烦?
Is there any magento way to do that or is the only way to comment out the configuration (which is what I have done for now) including all the hassle while updating that module later?
推荐答案
如果您将模块设置为也要进行重写的模块为"depend",则将在适当的情况下最后读取配置,并且应坚持进行重写您应该具有的app/etc/modules文件中的文件:
If you set your module to 'depend' on the one that's also doing a rewrite, your config will be read last and the rewrite should stick, in the appropriate file within app/etc/modules you should have:
<config>
<modules>
<Your_Module>
<active>true</active>
<codePool>local</codePool>
<depends>
<Other_Module/>
</depends>
</Your_Module>
<modules>
<config>
这篇关于在多个模块中覆盖magento块(以及如何忽略其他模块)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!