每个控制器操作都将导致多个目标事件在Mage_Core_Controller_Varien_Action
(链接)中触发,这是所有操作控制器的超类.这些事件不同地涉及从模块路由器配置+控制器路径+动作派生的"完整动作名称",以及正在请求的路由名称.
在标准onepage checkout的情况下,完整的操作名称是checkout_onepage_index
,路径名称是checkout_onepage
.
renderLayout():
controller_action_layout_render_before_'.$this->getFullActionName()
preDispatch()方法:
controller_action_predispatch_' . $this->getRequest()->getRouteName()
controller_action_predispatch_' . $this->getFullActionName()
postDispatch()方法:
controller_action_postdispatch_' . $this->getRequest()->getRouteName()
controller_action_postdispatch_' . $this->getFullActionName()
您观察到的事件取决于OneStepCheckout模块如何捕获路由.的getRouteName()
,如果你需要的路线和模块来区分基于事件可能是有用的.您将要测试"客户已登录"和"客户已注销"方案.虽然predispatch事件是涉及重定向的逻辑的首选,但您需要平衡您的需求与重复购物车/报价+客户会话逻辑.
归档时间: |
|
查看次数: |
8993 次 |
最近记录: |