我有一个观察者在听这个controller_action_predispatch
事件。这是因为我正在为客户访问的每个页面做一些与地理 IP 相关的逻辑。我想显示一个灯箱弹出窗口,以获取客户的输入作为逻辑的一部分。
我在这里面临的部分问题是在这个阶段没有加载布局。:(
这可能吗?如果是这样,最好的有效方法是什么?
看着
Mage_Core_Controller_Varien_Action::renderLayout()
Mage::dispatchEvent('controller_action_layout_render_before');
Mage::dispatchEvent('controller_action_layout_render_before_'.$this->getFullActionName());
该事件可能会更好
所以我不得不通过一个不同的事件来从我的观察者访问布局。对我来说最好的一个是听controller_action_layout_generate_blocks_after
事件。然后我抓住一个街区,
$myblock = $observer->getLayout()->getblock('myblock');
$myblock->setMyvar('PassMyValue');
然后使用该值弹出我的灯箱以获取用户输入。