如何从自己的模块覆盖magento控制器动作?

时间:2018-07-27 19:38:44

标签: magento controller extends overwrite magento-1.8

我尝试用自己的方法覆盖“ app \ code \ core \ Mage \ Newsletter \ controllers \ ManageController.php ”中的函数indexAction

我将控制器复制到了 app \ code \ local \ Fekete \ Newsletter2Go \ controllers \ ManageController.php ,只让函数indexAction在那里。

<?php

require_once 'Mage/Newsletter/controllers/ManageController.php';

class Fekete_Newsletter2Go_ManageController extends Mage_Newsletter_ManageController
{
    public function indexAction()
    {
        exit("test");
    }
}

然后,我在<config></config>标签内的以下代码中添加了以下代码: app \ code \ local \ Fekete \ Newsletter2Go \ etc \ config.xml

<frontend>
    <routers>
        <newsletter>
            <args>
                <modules>
                    <Fekete_Newsletter2Go before="Mage_Newsletter">
                        Fekete_Newsletter2Go
                    </Fekete_Newsletter2Go>
                </modules>
            </args>
        </newsletter>
    </routers>
</frontend>

但是如果我转到 http://example.com/newsletter/manage/ ,则什么都没有改变,则没有使用我的覆盖。

我想念什么?

1 个答案:

答案 0 :(得分:-1)

我找到了问题的原因。我不得不改变这个:

<Fekete_Newsletter2Go before="Mage_Newsletter">
    Fekete_Newsletter2Go
</Fekete_Newsletter2Go>

对此:

<Fekete_Newsletter2Go before="Mage_Newsletter">Fekete_Newsletter2Go</Fekete_Newsletter2Go>
相关问题