3

$params製品のレンダリング (に渡す) に影響を与えたいと思いMage_Catalog_Helper_Product_View::prepareAndRender()、イベントにオブザーバーを登録しましたcontroller_action_predispatch_catalog_product_view

レンダリングは正常に機能していますが、元のcatalog/product/viewアクションがまだ実行されているため、2 つの製品が表示されています。

派遣前オブザーバー中に派遣を停止するにはどうすればよいですか?

4

1 に答える 1

8
  1. dispatchedリクエストのフィールドは true でなければなりません
  2. フロント アクションの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
);
于 2012-10-29T22:25:05.790 に答える