2013-05-14 63 views
1

我做了一个观察者触发事件adminhtml_block_html_before,但当我尝试删除选项卡没有任何反应。下面的代码:Magento方法“removeTab”不起作用

public function alterMenu($observer) { 
    $block = $observer->getBlock();  
    if ($block instanceof Mage_Adminhtml_Block_Sales_Order_View_Tabs) 
     $block->removeTab('order_rma'); 
    } 

后,如果我用print_r($block->getTabsIds());有以下情况:

Array 
(
    [0] => order_info 
    [1] => order_invoices 
    [2] => order_creditmemos 
    [3] => order_shipments 
    [4] => order_history 
    [5] => order_transactions 
) 

但标签仍然可见。我正在使用Magento EE 1.12。有什么建议么?

谢谢!

+0

你确定你的观察是否设置正确,抓住后挡的标签添加? – Andrew 2013-05-14 13:13:02

+0

是的,因为如果我这样做: if($ block instanceof Mage_Adminhtml_Block_Sales_Order_View) $ block-> removeButton('create_rma'); 该按钮被正确删除。 – 2013-05-14 13:19:36

+0

在事件触发后,它可能被模块添加 – Andrew 2013-05-14 13:27:14

回答

1

解决了与事件core_block_abstract_to_html_before,而不是adminhtml_block_html_before,可能与此事件的标签去掉之前被渲染。