Magento 用 Embedded ERP Extension を購入しました。私たちはそれをカスタマイズし、いくつかのコントローラーも書き直しました。ここに私のconfig.xmlファイルからのスニペットがあります
<admin>
<routers>
<mdn_extended>
<!-- should be set to "admin" when overloading admin stuff (?) -->
<use>admin</use>
<args>
<module>MDN_Extended</module>
<!-- This is used when "catching" the rewrite above -->
<frontName>mdn_extended</frontName>
</args>
</mdn_extended>
</routers>
</admin>
<global>
<rewrite>
<mdn_extended_advancedstock_warehouse>
<from><![CDATA[#^/AdvancedStock/Warehouse/#]]>
</from>
<to>/mdn_extended/AdvancedStock_Warehouse/</to> <!-- THIS IS AJAX CASE -->
</mdn_extended_advancedstock_warehouse>
<mdn_extended_advancedstock_stockmovement>
<from><![CDATA[#^/AdvancedStock/StockMovement/#]]></from>
<to>/mdn_extended/AdvancedStock_StockMovement/</to> <!-- this is page REFRESH CASE -->
</mdn_extended_advancedstock_stockmovement>
</rewrite>
</global>
ここで興味深い問題があります。グリッドでソート/フィルタリングなどのアクションを行う場合は、最初に書き換えます。発信し、ajax 呼び出しを行います。通常、セッションがなくなった場合、サーバーは次の形式のような拒否された json を返しました
{"ajaxExpired":1,"ajaxRedirect":"http:\/\/upgrade.magento.com\/index.php\/admin\/index\/login\/key\/90d3e0a32ecc2cb8e4183ecde51a0d54\/"}
ただし、最初のケースでは、拒否された json は次の形式になり、URL が変更されます
{"ajaxExpired":1,"ajaxRedirect":"http:\/\/upgrade.magento.com\/index.php\/AdvancedStock\/index\/login\/key\/2e96b02d545ee3fddaea963ae6ec5d35\/"}
このため、ユーザーは 404 ページに移動します。
次に、2 番目の書き換え規則について考えます。
この場合、セッションがタイムアウトし、グリッドで何らかのアクションを行うと、ページが更新されますが、ログイン ページに移動する代わりに、致命的なエラー (ユーザー名を取得しようとしている) が報告されます。何時間ものデバッグの後、レイアウトの問題であることがわかりました。ハンドル。
通常、ルート名が次の場合、module/controller/action
magento は
<module_controller_action>
xml ファイルからレイアウト ハンドルもロードします。<admin_index_login>
そのため、最終的<admin_index_login>
にレンダリングされます。2 回目の書き換えの場合、magento は<admin_index_login>
ハンドルをロードしていないため、致命的なエラーが表示されます。
この方向のヒントや助けをいただければ幸いです。他に情報が必要な場合は、喜んで提供させていただきます。どうもありがとう!