1

G'Day all、

「 checkout_cart_save_after 」をキャプチャする最初のmagentoイベントハンドラーを作成しようとしていますが、Observer.phpコードを起動できません。magentoイベントのWebサイトを2日間確認した後、プロセス全体を理解していますが、コードは実行されていません..理由について私は困惑しています。

これが/var/ magento / app / etc /modules/にあるmodulesxmlファイルです。

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

ご覧のとおり、他の人のためのチュートリアルを書いているので、名前空間Yourmoduleを使用しています。

モジュールのetcディレクトリ(/ var / magento / app / code / local / Namespace / Yourmodule / Module)にconfig.xmlがあります

<?xml version="1.0"?>
<global>
    <events>
        <checkout_cart_save_after>
            <observers>
                <yourmodule_after_observer>
                    <type>singleton</type>
                    <class>Namespace_Yourmodule_Model_Observer</class>
                    <method>checkout_cart_save_after</method>
                </yourmodule_after_observer>
            </observers>
        </checkout_cart_save_after>
    </events>
</global>

ModulesディレクトリにObserver.phpファイルがあります。

class Namespace_Yourmodule_Model_Observer
{
/*----------------------------------------
 *
 * LogInfo()
 *
 * Basic logging of activity to disk for debugging
 */
        public function LogInfo($msg)
        {
                $logfile="/logs/Namespace-module.log";
                $fd=fopen($logfile,"a");
                if($fd)
                {
                        fwrite($fd,$msg."\n");
                        fclose($fd);
                }
        }

    public function checkout_cart_save_before($observer)
    {
        LogInfo("save_before called");
    }

    public function checkout_cart_save_after($observer)
    {
        LogInfo("save_after called");
    }
}

カートにアイテムを追加したりカートからアイテムを削除したりした結果、ログファイルは作成されず、手動で作成した場合、データは書き込まれず、system.logはエラーを表示しません。XMLを歪めた場合、エラーが報告されるため、XMLファイル読み取られています。

私が見逃したことについての考えはありますか?

シド

アップデート12/2:

私は週末をこれに費やして問題を解決しました、ヒントのおかげで、それは私が拾うべきであったマイナーなものの組み合わせであり、XMLファイルのフォーマットは今上で提案されたものと一致しています...今ありますチュートリアル!作業コードと構成ファイルを使用して、プロセスを完全に文書化しました。

http://z900collector.wordpress.com/magento/magento-events/を参照してください

4

1 に答える 1

0

config.xmlを次のように更新してみてください

<?xml version="1.0"?>
<config>
<modules>
    <Namespace_Yourmodule>
        <version>1.0</version>
    </Namespace_Yourmodule>
</modules>
<global>
    <!--helpers>
        <yourmodule>
            <class>Namespace_Yourmodule_Helper</class>
        </yourmodule>
    </helpers-->
    <models>
        <yourmodule>
            <class>Namespace_Yourmodule_Model</class>
        </yourmodule>
    </models>
    <events>
        <checkout_cart_save_after>
            <observers>
                <yourmodule_after_observer>
                    <type>singleton</type>
                    <class>Namespace_Yourmodule_Model_Observer</class>
                    <method>checkout_cart_save_after</method>
                </yourmodule_after_observer>
            </observers>
        </checkout_cart_save_after>
    </events>
</global>
</config>

イベント/オブザーバーを使用したMagentoのカスタマイズを参照してください

于 2012-11-30T10:01:24.753 に答える