Magento 从Indexcontroller重定向自定义页面上的客户

Magento 从Indexcontroller重定向自定义页面上的客户,magento,redirect,custom-pages,Magento,Redirect,Custom Pages,我想重定向客户,即使他没有登录,在我的自定义页面上,客户需要添加报价和产品详细信息。当他从产品视图页面点击“添加到比较”链接时,他将在该页面上重定向,提交表单后,他将停留在该页面,因为它是成功的消息 请注意,这件事我必须从索引控制器的preDispatch函数中完成。 谢谢。您需要在config.xml中添加代码 <frontend> <events> <controller_action_predispatch>

我想重定向客户,即使他没有登录,在我的自定义页面上,客户需要添加报价和产品详细信息。当他从产品视图页面点击“添加到比较”链接时,他将在该页面上重定向,提交表单后,他将停留在该页面,因为它是成功的消息

请注意,这件事我必须从索引控制器的preDispatch函数中完成。
谢谢。

您需要在config.xml中添加代码

<frontend>
    <events>
        <controller_action_predispatch>
            <observers>
                <controller_action_before>
                    <class>dispatcher/observer</class>
                    <method>controllerActionPreDispatch</method>
                </controller_action_before>
            </observers>
        </controller_action_predispatch>
    </events>
</frontend>

你的问题一点也不清楚。如果可能的话,请用截图清楚地描述,以便其他人能够提供帮助。我用一个例子来解释这一点。当客户点击“添加到愿望列表”时,客户将重定向到一个自定义页面。现在,当我调试时,第一个被调用的函数名为“preDispatch”。因此,从这里开始,我需要以满足我的需求的方式编辑代码(客户,即使他没有登录,也会重定向到我的定制phtml页面)。
public function controllerActionPreDispatch($observer)
{
    //we compare action name to see if that's action for which we want to add our own event
    if($observer->getEvent()->getControllerAction()->getFullActionName() == 'yourmodule Action Name') 
    {
        Mage::app()->getResponse()->setRedirect(Mage::getUrl("customer/account"));
    }
}