2

バックエンドで注文を作成する次のコントローラーをオーバーライドしたい:

app/code/core/Mage/Adminhtml/controllers/Sales/Order/CreateController.php

ファイル自体を次の場所にコピーしました。

app/code/community/Pinto/PartnerSystem/Adminhtml/controllers/Sales/Order/CreateController.php

ファイル/ディレクトリ構造をどこに、またはどのように正確にコピーするかわからないため、次の場所にもコピーしました。

app/code/community/Pinto/PartnerSystem/controllers/AdminControllers/Sales/Order/CreateController.php

次に、クラスの名前を次のように変更しました。

class PartnerSystem_Adminhtml_Sales_Order_CreateController extends Mage_Adminhtml_Sales_Order_CreateController 
{ 
// functions 
}

私のconfig.xmlでは、次を追加しました。

<admin>
        <routers>
            <partnersystem>
                <use>admin</use>
                <args>
                    <module>Pinto_PartnerSystem_AdminControllers</module>
                    <frontName>partnersystemadmin</frontName>
                </args>
            </partnersystem>
            <adminhtml>
                <args>
                    <modules>
                        <partnersystem before="Mage_Adminhtml">PartnerSystem_Adminhtml_Sales_Order_CreateController</partnersystem>
                    </modules>
                </args>
            </adminhtml>
        </routers>  
    </admin>

CreateController.phpベースの代わりにmy を使用するために の間に何を置くべきかについてはよくわかりません。

Magento を初めて使用するので、いくつかのヘルプを使用できます :)

4

2 に答える 2

3

新しいコントローラーの正しいパスは : app/code/community/Pinto/PartnerSystem/controllers/Adminhtml/Sales/Order/CreateController.php(フォルダーcontrollersと を切り替えますAdminhtml)。構成からのこの行:

<partnersystem before="Mage_Adminhtml">PartnerSystem_Adminhtml_Sales_Order_CreateController</partnersystem>

する必要があります

<partnersystem before="Mage_Adminhtml">Pinto_PartnerSystem_Adminhtml</partnersystem>

新しいコントローラーファイルで、クラス定義がこれを追加する前に

require_once 'Mage/Adminhtml/controllers/Sales/Order/CreateController.php'  

[編集]
新しいコントローラ クラス名はPinto_PartnerSystem_Adminhtml_Sales_Order_CreateController.

于 2013-10-24T13:14:59.093 に答える
2

これは、コントローラーのインクルード パスに関する小さな通知です。

このインクルード パスは、 Magento コンパイラ モードがオンになっている場合にエラーを引き起こす可能性があります。

require_once 'Mage/Adminhtml/controllers/Sales/Order/CreateController.php';

その代わりに使用するのは良いことです

require_once Mage::getModuleDir('controllers', 'Mage_Adminhtml').DS.'Sales_Order_CreateController.php';

より安全になります。お役に立てれば..

于 2014-01-23T09:55:54.477 に答える