0

我试图覆盖页面上的特定块,在本例中是 Sales_Order_View_History 模板。我看到的问题是这个块已经被覆盖了。

覆盖这个块的自定义模块使用了一个观察者,它基本上是这样的:当要加载 History.php 时,加载 Historytwo.php 代替。History.php 也被用于后端的两个独立页面。我只能在一页上覆盖它。这让我完全迷失了。我确实相信我想要覆盖模板的模块只是覆盖我想要覆盖的那个。

我认为覆盖块的普遍接受的格式是:

<adminhtml>
    <rewrite>
       <sales_order_view_companyhistory>
       Namespace_Package_Blocks_Adminhtml_Sales_Order_View_Companyhistory_Content</

上面的代码给了我一个损坏的布局,它停止了大多数块/模板的渲染。

4

2 回答 2

1

如果另一个模块在“adminhtml_block_html_before”事件上使用了观察者,您是否尝试过重写他们的观察者模型以使其执行您想要的操作?
同时,您还可以在同一事件上添加自己的观察者,这将做同样的事情,但仅在未启用其他模块时(例如,通过检查Mage::helper('core')->isModuleEnabled()),以便它适用于所有情况.

于 2012-07-13T07:44:49.067 回答
0

这两个配置片段将重写两个单独的类名。

sales映射在Mage/Sales/etc/config.xml

global/blocks/sales/class>Mage_Sales_Block

adminhtml映射在Mage/Adminhtml/etc/config.xml

global/blocks/adminhtml/class>Mage_Adminhtml_Block
于 2012-07-05T16:45:23.693 回答