0

オーバーライドしたいMage/Adminhtml/controllers/Sales/OrderController.php。私のモジュールはapp/code/local/MW/Adminhtml.

私のconig.xmlには、次のコードを入れました。

<config>
.....
<admin>
        <routers>
            <adminhtml>                
                <args>
                    <modules>
                        <MW_Adminhtml before="Mage_Adminhtml">MW_Adminhtml</MW_Adminhtml>
                    </modules>                    
                </args>
            </adminhtml>
        </routers>
    </admin>
</config>

コントローラーは以下の通り。

require_once 'Mage/Adminhtml/controllers/Sales/OrderController.php';
class MW_Adminhtml_Sales_OrderController extends Mage_Adminhtml_Sales_OrderController
{
    /*
     some code

*/
}

それでも、コアコントローラークラスをロードします。ここで何が間違っていますか?どんな助けでも大歓迎です。

4

2 に答える 2

2

これは、magento 1.7 の作業例です。

app/code/local/Namespace/ModuleName/etc/config.xml で

<?xml version="1.0"?>
<config>

  <frontend>
  </frontend>

  <adminhtml>
  </adminhtml>

  <admin>
      <routers>
            <adminhtml>     
            <use>admin</use>           
                <args>
                    <modules>
                        <Namespace_ModuleName before="Mage_Adminhtml">Namespace_ModuleName</Namespace_ModuleName>
                    </modules>                    
                </args>
            </adminhtml>
      </routers>
  </admin>
</config>

そしてコントローラークラス:

アプリ/コード/ローカル/名前空間/モジュール名/コントローラー/Sales/OrderController.php

require_once 'Mage/Adminhtml/controllers/Sales/OrderController.php';
class Namespace_ModuleName_Sales_OrderController extends Mage_Adminhtml_Sales_OrderController
{
    protected function _construct()
    {
        die('it works');
    }
}

おそらく using:<use>admin</use>がこの場合の鍵です。

于 2013-07-19T08:11:47.127 に答える
0

私は3年遅れていることを知っていますが、これに1時間費やしただけなので、私の経験は将来他の人に役立つかもしれません.

magento エンタープライズ エディションを使用している場合は、以下を入力する必要があります。

before="Enterprise_SalesArchive_Adminhtml"

それ以外の

before="Mage_Adminhtml"

config.xml ファイルのコントローラー ルーター宣言で、以下の正確なコードが魅力的に機能します。

于 2016-09-05T16:02:17.233 に答える