2

拡張機能で Mage_Adminhtml_Block_Widget_Form を上書きしようとしていますが、うまく動作しないようです。

私の設定は次のようになります

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

そして、私の上書きクラス (ディレクトリ内: Baldwin/TestModule/Block/Adminhtml/Widget/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");
    }
}

誰かが私が間違っていることを知っていますか?

4

1 に答える 1

0

正確には何を期待していますか?通常、具体的なウィジェットによって拡張Mage_Adminhtml_Block_Widget_Formされ、書き換えで継承ツリーを変更することはできません。次のように、フォーム ウィジェットがどこかで直接インスタンス化される場合にのみ、書き換えが効果を発揮します。

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

残念ながら、クラスを上書きcode/local/Mage/Adminhtml/Block/Widget/Form.phpするか、コアクラスを変更しない要件の別のソリューションを見つける必要があります (推奨!)

于 2013-02-28T10:15:04.993 に答える