2013-02-28 234 views
2

我想覆蓋Mage_Adminhtml_Block_Widget_Form在我的擴展,但我似乎無法得到它的工作。Magento:試圖覆蓋Mage_Adminhtml_Block_Widget_Form

我的配置是這樣的

<global> 
    <blocks> 
     <adminhtml> 
     <rewrite> 
      <widget_form>Baldwin_TestModule_Block_Adminhtml_Widget_Form</widget_form> 
     </rewrite> 
     </adminhtml> 
    </blocks> 
</global> 

而且我覆蓋類(在目錄:鮑德溫/ TestModule /座/ Adminhtml /空間/ form.php的)看起來像這樣

class Baldwin_TestModule_Block_Adminhtml_Widget_Form 
extends Mage_Adminhtml_Block_Widget_Form 
{ 
    /** 
    * Set Fieldset to Form 
    * 
    * @param array $attributes attributes that are to be added 
    * @param Varien_Data_Form_Element_Fieldset $fieldset 
    * @param array $exclude attributes that should be skipped 
    */ 
    protected function _setFieldset($attributes, $fieldset, $exclude=array()) 
    { 
     die("test"); 
    } 
} 

有誰有什麼想法我做錯了什麼?

+0

另一個模塊方式很好地覆蓋它之前,它到達你的。 Magento模塊的一個大問題。 – 2013-02-28 10:08:46

回答

0

你期望什麼?通常Mage_Adminhtml_Block_Widget_Form得到擴展由具體的小部件,你不能改變繼承樹與重寫。您的重寫只有當表單控件將直接某處被實例化,像一個效果:

Mage::getBlock('adminhtml/widget_form'); 

不幸的是,你將不得不覆蓋類中code/local/Mage/Adminhtml/Block/Widget/Form.php或找到適合您需求的另一個解決方案,不改變核心類(首選!)