0

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/actionmagento は <module_controller_action>xml ファイルからレイアウト ハンドルもロードします。<admin_index_login>

そのため、最終的<admin_index_login>にレンダリングされます。2 回目の書き換えの場合、magento は<admin_index_login>ハンドルをロードしていないため、致命的なエラーが表示されます。

この方向のヒントや助けをいただければ幸いです。他に情報が必要な場合は、喜んで提供させていただきます。どうもありがとう!

4

1 に答える 1