1

カートコントローラーにあるMagentoの関数couponPostActionを上書きしようとしています。

新しいローカル モジュール Nf_Ajaxcoupon を作成しました。

これは設定ファイルです

<?xml version="1.0"?>
<config>
    <modules>
        <Nf_Ajaxcoupon>
            <version>0.1.0</version>
        </Nf_Ajaxcoupon>
    </modules>
    <global>

        <rewrite>

            <Nf_Ajaxcoupon_checkout_cart>
                <from><![CDATA[#^/checkout/cart/#]]></from>

                <to>/Ajaxcoupon/checkout_cart/</to>
            </Nf_Ajaxcoupon_checkout_cart>
       </rewrite>
    </global>

    <frontend>
        <routers>
            <Nf_Ajaxcoupon>


                <use>standard</use>

                <args>

                    <module>Nf_Ajaxcoupon</module>



                    <frontName>Ajaxcoupon</frontName>

                </args>

            </Nf_Ajaxcoupon>

        </routers>

    </frontend>

</config>

これは私のモジュールのアクティベーションです:

<?xml version="1.0"?>
<config>
    <modules>
        <Nf_All>
            <active>true</active>
            <codePool>local</codePool>
        </Nf_All>
    </modules>
</config>

これは私の CartController.php ファイルです:

<?php

require_once 'Mage/Checkout/controllers/CartController.php';


class Nf_Ajaxcoupon_Checkout_CartController extends Mage_Checkout_CartController

  {


   function couponPostAction()
    {
    var_dump($_POST);
      die('local');


    }
  }

?>

system->configuration->advanced に移動すると、ローカルコントローラーが呼び出されない理由がわかりません。有効になっていることがわかります。

なぜそれが機能しないのか、それをデバッグする方法について何か提案はありますか?

ありがとう

4

1 に答える 1

1

これは、フロントエンドノード内の構成でコントローラーをオーバーライドする適切な方法です

<routers>
    <checkout>
        <args>
            <modules>
                <Nf_Ajaxcoupon before="Mage_Checkout">Nf_Ajaxcoupon_Checkout</Nf_Ajaxcoupon>
            </modules>
        </args>
    </checkout>
</routers>

また、構成ファイルがNf_AllではなくNf_Ajaxcoupon用である必要がないことを確信していますか

<?xml version="1.0"?>
<config>
    <modules>
        <Nf_Ajaxcoupon>
            <active>true</active>
            <codePool>local</codePool>
        </Nf_Ajaxcoupon>
    </modules>
</config>
于 2012-07-25T11:34:10.590 に答える