2

我有一个观察者在听这个controller_action_predispatch事件。这是因为我正在为客户访问的每个页面做一些与地理 IP 相关的逻辑。我想显示一个灯箱弹出窗口,以获取客户的输入作为逻辑的一部分。

我在这里面临的部分问题是在这个阶段没有加载布局。:(

这可能吗?如果是这样,最好的有效方法是什么?

4

2 回答 2

1

看着

Mage_Core_Controller_Varien_Action::renderLayout()

Mage::dispatchEvent('controller_action_layout_render_before');
Mage::dispatchEvent('controller_action_layout_render_before_'.$this->getFullActionName());

该事件可能会更好

于 2013-05-08T07:32:14.290 回答
1

所以我不得不通过一个不同的事件来从我的观察者访问布局。对我来说最好的一个是听controller_action_layout_generate_blocks_after事件。然后我抓住一个街区,

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

然后使用该值弹出我的灯箱以获取用户输入。

于 2013-05-09T02:03:30.747 回答