我使用模块创建器创建了一个模块。
我正在尝试覆盖Adminhtml\Block\Sales\Order\Grid.php
class Mage_Adminhtml_Block_Sales_Order_Grid extends Mage_Adminhtml_Block_Widget_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',
));}
如果我在管理html\块\销售\订单\网格中注释/删除该行,则会发生注释.php
protected function _prepareColumns()
{
$this->addColumn('real_order_id', array(
'header'=> Mage::helper('sales')->__('Order #'),
'width' => '80px',
'type' => 'text',
'index' => 'increment_id',
));
然后只有我的更改在 adminhtml 网格中受到影响。为什么会发生回退更改?
配置.xml
<blocks>
<adminhtml>
<rewrite>
<sales_order_grid>Delivery_Date_Block_Sales_Order_Grid</sales_order_grid>
</rewrite>
</adminhtml>
</blocks>
您可以尝试一下这是否适合您:
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',
));
}
你需要更改扩展类
class Delivery_Date_Block_Sales_Order_Grid extends Mage_Adminhtml_Block_Widget_Grid
请参阅覆盖网格 http://inchoo.net/ecommerce/magento/how-to-extend-magento-order-grid/的示例