私の最後の質問に端を発し、私はオーバーライドをしようとして困惑しています。ここでMudithaEの答えがしたことも正確にやっています。
_prepareColumns()
ファイルにあるように、独自のものを実装したいと思いますapp/code/core/Mage/Adminhtml/Block/Sales/Order/Grid.php
。モジュールのディレクトリとファイルを以下のように設定しました。調査中に、多くの開発者がDev_Module_Block_Adminhtml_blah
. 変化なし。私の Cycleworks_SalesGridImproved モジュールは、System -> Config -> Advanced リストにも表示されます。
ファイル:
app/code/local/Cycleworks/SalesGridImproved/Adminhtml/Block/Sales/Order/Grid.php
:
<?php
class Cycleworks_SalesGridImproved_Adminhtml_Block_Sales_Order_Grid extends Mage_Adminhtml_Block_Sales_Order_Grid {
protected function _prepareColumns() // tried public too
{
parent::_prepareColumns();
...
...
$this->addColumn('created_at', array(
'header' => Mage::helper('sales')->__('Purchased On'),
'index' => 'created_at',
'type' => 'datetime',
'format' => 'MMM d, h:mm a',
'width' => '165px',
));
...
...
return $this;
}
}
app/code/local/Cycleworks/SalesGridImproved/etc/config.xml
:
<?xml version="1.0"?>
<config>
<modules>
<!-- also tried: Cycleworks_SalesGridImproved -->
<Cycleworks_Adminhtml>
<version>0.0.01</version>
</Cycleworks_Adminhtml>
</modules>
<global>
<blocks>
<adminhtml>
<salesgridimproved>
<class>Cycleworks_SalesGridImproved_Adminhtml_Block_Sales_Order_Grid</class>
</salesgridimproved>
<rewrite>
<sales_order_grid>Cycleworks_SalesGridImproved_Adminhtml_Block_Sales_Order_Grid</sales_order_grid>
</rewrite>
</adminhtml>
</blocks>
</global>
</config>
そしてで/app/etc/modules/Cycleworks_SalesGridImproved.xml
:
<?xml version="1.0"?>
<config>
<modules>
<Cycleworks_SalesGridImproved>
<active>true</active>
<codePool>local</codePool>
</Cycleworks_SalesGridImproved>
</modules>
</config>
私が欠けているものを見せてください...ありがとう!
アップデート:
拡張機能 EM_DeleteOrder も、私と同じ販売注文グリッド クラスをオーバーライドしていることがわかりました。彼の拡張機能の構成は、Mage コアの前に呼び出されるように設定されているため、私のものよりも複雑です。config.xml は確かにビジーです!
<?xml version="1.0"?>
<config>
<modules>
<EM_DeleteOrder>
<version>1.0.0</version>
</EM_DeleteOrder>
</modules>
<global>
<rewrite>
<em_emadmin_adminhtml_sales_order>
<from><![CDATA[#/admin/sales_order/#]]></from>
<to>/emadmin/adminhtml_sales_order/</to>
</em_emadmin_adminhtml_sales_order>
</rewrite>
<blocks>
<adminhtml>
<rewrite>
<sales_order_grid>EM_DeleteOrder_Block_Adminhtml_Sales_Order_Grid</sales_order_grid>
</rewrite>
</adminhtml>
</blocks>
</global>
<admin>
<routers>
<em_deleteorder>
<use>admin</use>
<args>
<module>EM_DeleteOrder</module>
<frontName>emadmin</frontName>
</args>
</em_deleteorder>
<adminhtml>
<args>
<modules>
<EM_DeleteOrder_Adminhtml before="Mage_Adminhtml">EM_DeleteOrder_Adminhtml</EM_DeleteOrder_Adminhtml>
</modules>
</args>
</adminhtml>
</routers>
</admin>
</config>
同様の構文を使用してモジュールを機能させ、彼のコードをハッキングする必要がない方法について何か考えはありますか? のようにafter="Mage_Adminhtml"
?
最終更新: 残念ながら、以下の 3 つの回答は回答ではなく、拡張機能の競合でした。私は自分の質問に答えて、回答済みとしてマークします。