1

モジュールconfig.xmlファイルの書き換えを使用してadminproductControllerをオーバーロードしました。

<from><[CDATA [# ^ admin / catalog_product / #]]> </ from>
<to>/mymodule/catalog_produc/</to>

開発環境では正常に動作しますが、本番環境では動作せず、コントローラーが見つかりません。

調査の結果、local.xmlの管理パスが2つの環境で同じではないことがわかりました。本番環境

<admin>
     <routers>
         <adminhtml>
             <args>
                 <frontName> <! [CDATA [admin-prod]]> </ frontName>
             </ args>
         </ adminhtml>
     </ routers>
</ admin>

開発環境

<admin>
     <routers>
         <adminhtml>
             <args>
                 <frontName> <! [CDATA [*admin-prod*]]> </ frontName>
             </ args>
         </ adminhtml>
     </ routers>
</ admin>

私の質問は、モジュールconfig.xmlでフロントネームを動的に取得して、次のように正しく動的に書き換えを設定する方法です。<[CDATA [#^ admin-prod / catalog_product /#]]> ??????

4

1 に答える 1

0

古いバージョンのMagento(1.3より古い)を使用していない場合は、この種の正規表現ベースのコントローラーの書き換えはもう必要ありません。代わりにこれを使用してください:

config.xml

<admin>
    <routers>
        <adminhtml>
            <args>
                <modules>
                    <mymodule before="Mage_Adminhtml">MyNamespace_MyModule</mymodule>
                </modules>
            </args>
        </adminhtml>
    </routers>
</admin>

これで、MagentoはMyNamespace_MyModule_Catalog_ProductController以前を検索しMage_Adminhtml_Catalog_ProductController、ルートのフロント名に関係なく、見つかった場合は代わりにそれを使用します。

于 2013-02-24T23:03:30.657 に答える