我试图覆盖页面上的特定块,在这种情况下它是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</
上面的代码给了我一个破坏的布局,它停止了大多数块/模板的渲染。
答案 0 :(得分:1)
如果另一个模块在“adminhtml_block_html_before”事件中使用观察者,您是否尝试重写他们的观察者模型以使其按照您的要求进行操作?
同时,您也可以在同一事件上添加自己的观察者,这样做会做同样的事情,但只有在未启用其他模块时(例如,通过检查Mage::helper('core')->isModuleEnabled()
),才能适用于所有情况。
答案 1 :(得分: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