我想影响产品呈现(将$params
传递给Mage_Catalog_Helper_Product_View::prepareAndRender()
)并在controller_action_predispatch_catalog_product_view
事件中注册观察者。
渲染工作正常,但原始的catalog/product/view
操作仍然执行,因此会显示两个产品。
如何在预派遣观察员期间停止调度?
答案 0 :(得分:7)
dispatched
字段必须为true FLAG_NO_DISPATCH
标志必须设置为true 在代码中(内部观察者):
// @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
);