我想影响产品渲染(传递$params
给)并在事件中Mage_Catalog_Helper_Product_View::prepareAndRender()
注册一个观察者。controller_action_predispatch_catalog_product_view
渲染工作正常,但仍执行原始catalog/product/view
操作,因此显示了两个产品。
如何在预调度观察者期间停止调度?
我想影响产品渲染(传递$params
给)并在事件中Mage_Catalog_Helper_Product_View::prepareAndRender()
注册一个观察者。controller_action_predispatch_catalog_product_view
渲染工作正常,但仍执行原始catalog/product/view
操作,因此显示了两个产品。
如何在预调度观察者期间停止调度?
dispatched
请求的字段必须为真FLAG_NO_DISPATCH
标志必须设置为真在代码中(观察者内部):
// @see Mage_Core_Controller_Varien_Action::dispatch()
$controller = $observer->getControllerAction();
$controller->getRequest()->setDispatched(true);
$controller->setFlag(
'',
Mage_Core_Controller_Front_Action::FLAG_NO_DISPATCH,
true
);