2

controller_action_predispatchイベントを聞いているオブザーバーがいます。これは、顧客がアクセスしているページごとに geo ip 関連のロジックを実行しているためです。ライト ボックス ポップアップを表示して、ロジックの一部として顧客の入力を取得したいと考えています。

ここで直面している問題の一部は、この段階でレイアウトが読み込まれていないことです。:(

これは可能ですか?もしそうなら、それを行う最も効率的な方法は何ですか?

4

2 に答える 2

1

そのため、オブザーバーからレイアウトにアクセスするには、別のイベントを使用する必要がありました。私にとって最も良かったのは、controller_action_layout_generate_blocks_afterイベントを聞くことでした。次に、ブロックをつかみ、

$myblock = $observer->getLayout()->getblock('myblock');
$myblock->setMyvar('PassMyValue');

次に、その値を使用してライト ボックスをポップアップし、ユーザー入力を取得します。

于 2013-05-09T02:03:30.747 に答える