質問

Magentoにはイベントと呼ばれるフックのようなシステムがあることを知っています。誰かが完全なリストやスクリプトを使用して、どのイベントを呼び出すことができるかを判断するために使用できますか?

役に立ちましたか?

解決

ほとんどのイベントが動的に指定されているため、すべてのMagentoイベントのリストはありません。

あなたが私に尋ねると、これらの重要なイベント(および結果)を知っていることは良い出発点です(ニックのリストの横に):

mage_core_model_abstractから拡張されたすべてのオブジェクトは、読み込み、保存、削除に関する多くのイベントを発送します。

app/code/core/Mage/Core/Model/Abstract.php:255
Mage::dispatchEvent($this->_eventPrefix.'_load_before', $params);
// e.g. sales_order_load_before, checkout_cart_load_before

たとえば、オブジェクトがロードされた後、チェックを追加するために

app/code/core/Mage/Core/Model/Abstract.php:267
Mage::dispatchEvent($this->_eventPrefix.'_load_after', $this->_getEventData());
// e.g. cms_page_load_after

保存する前にオブジェクトに追加のデータを追加するには

app/code/core/Mage/Core/Model/Abstract.php:391
Mage::dispatchEvent($this->_eventPrefix.'_save_before', $this->_getEventData());
// e.g. catalog_product_save_before

「親」が保存された後、他のモデルを保存する

app/code/core/Mage/Core/Model/Abstract.php:466  
Mage::dispatchEvent($this->_eventPrefix.'_save_after', $this->_getEventData());
// e.g. catalogrule_rule_save_after

モデルが削除される前に、クリーンアップします

app/code/core/Mage/Core/Model/Abstract.php:501
Mage::dispatchEvent($this->_eventPrefix.'_delete_before', $this->_getEventData());
// e.g. store_delete_before

モデルが削除される前にクリーンアップします - または、その後も?あなたはまだ取引中です!

app/code/core/Mage/Core/Model/Abstract.php:529
Mage::dispatchEvent($this->_eventPrefix.'_delete_after', $this->_getEventData());
// e.g. website_delete_after

エンティティが削除されていることを確認したい場合

app/code/core/Mage/Core/Model/Abstract.php:541
Mage::dispatchEvent($this->_eventPrefix.'_delete_commit_after', $this->_getEventData());
// e.g. customer_delete_commit_after

mage_core_model_resource_db_collection_abstractから拡張されたコレクションには、2つの一般的なイベントもあります。

例:SQLを変更してコレクションをロードするには:

app/code/core/Mage/Core/Model/Resource/Db/Collection/Abstract.php:588
Mage::dispatchEvent($this->_eventPrefix.'_load_before', array(
    $this->_eventObject => $this
));
// e.g. sales_order_status_history_collection_load_before

例:オブジェクトに追加データを追加するには:

app/code/core/Mage/Core/Model/Resource/Db/Collection/Abstract.php:637
Mage::dispatchEvent($this->_eventPrefix.'_load_after', array(
    $this->_eventObject => $this
));
// e.g. sales_order_shipment_collection_load_after

他のヒント

血まみれをしてください grep 'Mage::dispatchEvent' app/ -rsn これにより、インストールに固有のイベントのリストが提供されます。イベントのリストは、Magentoバージョン、カスタマイズ、インストールされた拡張機能によって異なる場合があります。

私はこれを素敵なチートシートとして使用しています http://www.nicksays.co.uk/magento-events-cheat-sheet-1-7/. 。 1.7で呼び出すことができるすべてのイベントがあります。

私はこの質問が答えられたことを知っています私はちょうどここに私の道を追加するだけです:

  • ブラウザで観察したいページを準備します
  • アプリ/mage.phpを開きます
  • にとって public static function dispatchEvent (ln:〜446)最初に私が追加する//Mage::log($name, null, 'events.log', true);
  • そのラインの解消、
  • 私がオンになっているページを更新します
  • その行をもう一度コメントしてください

次に、var/log/events.log(〜40kb)を開き、そのページでのみ多くのイベントをご覧ください! :)

答えはすでに受け入れられていますが、とにかく私の答えを未来のために投稿してください:

Magentoにあるイベントのリストをご覧になりたい場合は、3つのオプションがあります。

1) Googleのために、Magentoイベントのリストをまとめた人がたくさんいます

2) フックするモジュールを作成します controller_action_predispatch 他のイベントの前に呼ばれるイベントであるイベントが呼び出されます。このモジュール内では、発送されたイベントをログに記録できます。

config.xmlに以下を追加します

<events>
    <controller_action_postdispatch>
        <observers>
            <controller_action_after>
                <class>yourmodule/observer</class>
                <method>hookToControllerActionPostDispatch</method>
            </controller_action_after>
        </observers>
    </controller_action_postdispatch>
</events>

そして、Yourmodule/Model/Observerの内部:

public function hookToControllerActionPostDispatch($observer) {
    Mage::log($observer->getEvent()->getControllerAction()->getFullActionName());
}

上記は、発送されたすべてのイベントを記録します...

3) SSHアクセスがある場合は、次のコマンドを実行して、すべてのイベント(およびそれらが発送されているファイル)の概要を取得できます。

cd /path/to/<magento-root>
grep -nris 'dispatchEvent' app/code/

私は、ロードされたページで観察できるイベントを表示する素晴らしい機能を備えたMagento開発者ツールバーを使用しています。

ここでは、既存のイベントのほとんどを表示できます。http://www.magentocommerce.com/wiki/5_modules_and_development/reference/magento_events

MagentoのCore MageモジュールでGrepを作成し、リストを遵守しました。

Magentoイベントの徹底的なリスト

指摘されているPSには、Magentoの非推奨機能内にあるイベントが含まれている可能性があるため、実装前にファイルと行の参照を確認してください。

提案のために開いています!

grep "::dispatchEvent" -R * | sort -u

grep "eventPrefix" -R * | sort -u

以前にリストされたGREPコマンドは複製(多く)にレンダリングされ、動的に生成されたイベント名を理解するために必要なイベントプレフィックスのリストをカバーしません。これらのコマンドは、両方のリストを一意の値のみでレンダリングします。他のグレップの回答のように-nフラグを追加して、私が思うの行番号を取得することができます。しかし、質問はコードのどこにあるのか尋ねませんでした。 〜_〜

http://www.magentocommerce.com/wiki/5_modules_and_development/reference/magento_events

ここでは、オブザーバーイベントの完全なリストを見つけることができます。

これらのチートシートを参照してください

https://www.nicksays.co.uk/magento-events-cheat-sheet-1-8/ http://rabee.me/codes/magento/cheatsheet/1.9/

それはあなたに役立ちます。

シングルリンクでバックエンド +フロントエンドイベントのすべてのリストを見つけることができます

http://www.magentocommerce.com/wiki/5_modules_and_development/reference/magento_events

誰かが更新されたリストを必要としている場合、私はこれを最新の状態に保とうとしています:

https://gist.github.com/digitalpianism/d8157c6b492238afed7809e5e3a134e

URLをフォローすることにより、すべてのMagento-1Xイベントを見つけることができます。 https://magento2.atlassian.net/wiki/display/m1wiki/magento +1.x+ events+ reference

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top