0

モジュールクリエーターを使用してモジュールを作成しました。

Adminhtml\Block\Sales\Order\Grid.php を上書きしようとしています

class Mage_Adminhtml_Block_Sales_Order_Grid extends Mage_Adminhtml_Block_Widget_Grid

上書きされたブロックは local\Delivery\Date\Block\Sales\Order\Grid.php にあります

class Delivery_Date_Block_Sales_Order_Grid extends Mage_Adminhtml_Block_Sales_Order_Grid

上書きする関数は

protected function _prepareColumns()
    {

モジュール ブロック内の関数を上書きしようとすると、奇妙な問題に直面します。代わりに、Mage フォルダー内の同じ関数行をコメント アウトすると、関数が上書きされ、変更は影響を受けません。

local\Delivery\Date\Block\Sales\Order\Grid.php に関数があるとします。

protected function _prepareColumns()
    {

        $this->addColumn('real_order_id', array(
            'header'=> Mage::helper('sales')->__('Order NEW ID#'),
            'width' => '80px',
            'type'  => 'text',
            'index' => 'increment_id',
        ));}

Adminhtml\Block\Sales\Order\Grid.php の行をコメント/削除すると、代わりに通知が発生します

protected function _prepareColumns()
    {

        $this->addColumn('real_order_id', array(
            'header'=> Mage::helper('sales')->__('Order #'),
            'width' => '80px',
            'type'  => 'text',
            'index' => 'increment_id',
        ));

その後、私の変更のみが adminhtml グリッドで影響を受けます。フォールバックの変更が行われるのはなぜですか?

config.xml

<blocks>
     <adminhtml>
                <rewrite>
                  <sales_order_grid>Delivery_Date_Block_Sales_Order_Grid</sales_order_grid>
                </rewrite>
     </adminhtml>
</blocks>
4

2 に答える 2

0

extends クラスを変更する必要があります

class Delivery_Date_Block_Sales_Order_Grid extends Mage_Adminhtml_Block_Widget_Grid

グリッドのオーバーライドの例を参照してくださいhttp://inchoo.net/ecommerce/magento/how-to-extend-magento-order-grid/

于 2013-10-16T10:39:11.833 に答える
0

これがうまくいくかどうか試してもらえますか:

    protected function _prepareColumns()
    {
        parent::_prepareColumns();

        $this->removeColumn('real_order_id');

        $this->addColumn('real_order_id', array(
            'header' => Mage::helper('sales')->__('Order NEW ID#'),
            'width'  => '80px',
            'type'   => 'text',
            'index'  => 'increment_id',
        ));
    }
于 2013-10-13T09:17:07.477 に答える