問題タブ [observers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
10 に答える
167156 参照

java - Observer と Observable はいつ使用する必要がありますか?

インタビュアーは私にこう尋ねました:

それらは何でObserverObservableいつ使用する必要がありますか?

私はこれらの用語を知らなかったので、家に帰って と についてグーグルで調べ始めたときObserverObservableさまざまなリソースからいくつかのポイントを見つけました。

1)ObservableはクラスでObserverあり、インターフェースです。

2)Observableクラスは のリストを維持しますObserver

3)Observableオブジェクトが更新されると、そのオブジェクトupdate()のそれぞれのメソッドを呼び出してObserver、変更されたことを通知します。

私はこの例を見つけました:

Observerしかし、なぜとObservable?が必要なのかわかりません。setChanged()およびnotifyObservers(message)メソッドは何のためのものですか?

0 投票する
1 に答える
2398 参照

magento - Magentoのオブザーバーの総計を更新するにはどうすればよいですか?

イベントのオブザーバーがいます

controller_action_predispatch_checkout_onepage_savePayment

いくつかの条件に基づいて総計を変更したいと思います。私は試してみました:

$ value = 100;

$ quote = Mage :: getSingleton('checkout / type_onepage')-> getQuote();

$ quote-> setGrandTotal($ value);

$ quote-> setTotalsCollectedFlag(false)-> collectTotals();

$ quote-> save();

また

$ value = 100;

$ quote = Mage :: getSingleton('checkout / type_onepage')-> getQuote();

$ quote-> setGrandTotal($ value);

$ quote-> collectTotals();

$ quote-> save();

しかし、それは機能しません。何か案は?

ありがとうございます!

0 投票する
4 に答える
3921 参照

php - Magento catalog_product_before_save がライブ サーバーで起動しない

私は展開の最中であり、Magento のオブザーバーとイベントを使用して特定の属性に固定データを与えることで、製品の保存をオーバーライドしようとしていますが、問題は、私が開発しているローカルでこれをすべて作業していることです。しかし、サーバーにアップロードしてオブザーバーを実行しようとすると、まったく起動しないようです。このチュートリアルに基づいて以下のコードを作成しました: http://www.magentocommerce.com/wiki/5_-_modules_and_development/0_-_module_development_in_magento/customizing_magento_using_event-observer_method

これを実現するために使用する 2 つのファイルが /app/code/local にあります。

/アプリ/コード/ローカル/リーフカッター/カタログ/etc/config.xml

/app/code/local/Leafcutter/Catalog/Model/ProductAutoInsert/Observer.php

}

テストするテキストも出力しようとしましたが、何もログに記録されないため、イベントが発生していないと考えています。正確なプラグインがインストールされているため、ライブ バージョンでプラグイン間で競合が発生するかどうかはわかりません。

上記のコードが実際に問題ではない場合、この問題を引き起こす可能性のある他の可能性は何ですか?

みんなありがとう。

0 投票する
1 に答える
1389 参照

events - Magento Event Observer: CatalogSearch を変更してカスタム属性を含める

以下のリンクの記事 (イベント/オブザーバーを使用して Magento をカスタマイズする) に従っていました。

http://www.magentocommerce.com/wiki/5_-_modules_and_development/0_-_module_development_in_magento/customizing_magento_using_event-observer_method#step_7

しかし、ステップ 7 についてはよくわかりません。この記事のステップ 7 を実行するにはどうすればよいですか?

ステップ 7
フロント エンドの製品詳細ページに移動し、新しい割引が有効になっていることを確認します。ここで注目すべきは、割引価格が必要な他のすべての画面です。ここでの例は検索結果画面で、この新しい属性を select query search attributes in method に追加する必要があります。

前もって感謝します。

0 投票する
1 に答える
956 参照

xml - オブザーバーからのレイアウトの更新

私はスライダーブロックMagentoで作業しており、オブザーバーからレイアウトを生成して更新しようとしています。

イベント:controller_action_layout_load_before

これは私のオブザーバーメソッドです:

実際、これは「$myXML」変数から取得したものです。

そして、それは動作しません!! しかし、このxmlをレイアウトにコピー/貼り付けしようとすると、機能します。Xmlコードは正しいです!助けが必要
ですありがとう!

0 投票する
2 に答える
2371 参照

events - 監視するコントローラーレスコアMagentoモジュールをトリガーするにはどうすればよいですか?外部スクリプトからconfig.xmlに

背景参照については、参照:Magento:オブザーバーを外部スクリプトで動作させるにはどうすればよいですか?

フロントエンドコントローラーのアクションを外部スクリプトから「複製」するための推奨される方法を尋ねたいと思いました。MagentoEE1.12の外部SSOログインを作成しています。

私のコードは、phpファイルに次のように存在します。test.phpを作成し、ユーザー(185)をユーザーIDに置き換えることで、テストできます。ページに移動してから、もう一度移動します。ログインおよびログアウトしていることに気付くでしょうが、adminではオンラインとして表示されません。読む...

このコードはユーザーにログインしますが、Mage_Log、Mage_Persistent、またはconfig.xmlのフロントエンド領域にアタッチされたcontroller_action_predispatchおよびcontroller_action_postdispatchイベントに依存するコントローラーのない他のモジュールは起動しません。

Mage_Logは、customer_loginを監視してbindCustomerLogin()関数を起動する(上記のAlan Stormの提案を使用しているため)が、コントローラーディスパッチが起動せず、モジュールが正しく機能しないという状況の完璧な例です。

これらの他のモジュールは、外部スクリプト(またはcontroller_front_init_routersイベントを監視しているグローバルオブザーバー)からどのようにトリガーされる可能性がありますか?

編集: 解決策これが上記のベンチマークによる提案の最終結果です...私はMage_Customerコントローラーをエミュレートしています。以下のスクリプトは、COMPLETEmagentoログインを実行する方法を示しています。広範囲にテストされていませんが、ユーザーがバックエンドにログインしていることを示しています。これは私がこれまでに見た中で最も完全なソリューションです。

0 投票する
2 に答える
574 参照

php - Magento: ディスパッチされたイベントをキャプチャできません

支払い方法とイベント タイプに基づいて自動注文ステータス チェンジャーを開発するために、次のモジュールを作成しました。

/GT/OrderFlo/etc/config.xml

/GT/OrderFlow/Model/Observer.php

コードはhttp://www.atwix.com/magento/auto-invoice-and-custom-order-status-upon-checkout/から複製されました。

sales_order_place_afterしかし、イベント後にオブザーバーを起動するにはどうすればよいですか?

0 投票する
2 に答える
1182 参照

php - オブザーバーでバスケットの商品 ID を取得する

特定の製品が追加されるたびにカートをクリアするために、オブザーバーを設定しsales_quote_add_itemました (単独で注文することになっています)。追加しようとしている製品の製品 ID を取得する方法がわかりません。いくつかの試行錯誤で、私はこれを思いつきました:

これはかなり醜い解決策のようです。これを呼び出すためのショートカットまたは適切な機能があると確信していますが、アイデアはありますか?

0 投票する
1 に答える
1415 参照

php - sales_quote_add_item オブザーバーからの製品の追加を中止します

私のsales_quote_add_item-observer では、標準的な方法でカスタム エラー メッセージを表示して製品の追加を中止するにはどうすればよいですか? 明らかにそれをグーグルで調べて、あまり賢くならずにコアソースをチェックしようとしました...

0 投票する
1 に答える
66 参照

ruby-on-rails-3 - オブザーバーでの翻訳の使用

通知メールの送信をオブザーバーにアウトソーシングすることで、モデルとコントローラーのクリーンアップを開始しました。

これをコントローラーからオブザーバーに移動することで気付いた問題が1つあります。「translate」または省略形「t」を呼び出すと、「メソッドが定義されていません」という答えが返されます。

わかりました。国際化のためのレールの実装が本当に好きです。しかし、モデルやオブザーバーでどのように使用できますか?