【问题标题】:How can I override a Magento controller?如何覆盖 Magento 控制器?
【发布时间】:2011-06-16 15:24:35
【问题描述】:

我需要使用服务器端代码检查结帐/购物车页面上优惠券代码的有效性。

Magento 已经提供了类似的检查。但是,我需要添加一个以查看用户是否已连接:在 Magento 中扩展/覆盖该操作的最佳方法是什么?

我知道我可以将控制器 PHP 文件复制到 /app/code/local/ 文件夹树,但我想知道是否有更好的方法。

【问题讨论】:

    标签: php magento overriding controllers


    【解决方案1】:

    在我看来,除了修改 core 之外的任何其他事情都很好。话虽如此,使用 config.xml 创建一个带有控制器目录等的简单模块:

    <config>
        <frontend>
            <routers>
                <checkout>
                    <args>
                        <modules>
                             <My_Module before="Mage_Checkout">My_Module_Checkout</My_Module>
                        </modules>
                    </args>
                </checkout>
            </routers>
        </frontend>
    </config>
    

    有关如何扩展前端控制器的更多详细信息,请参见此处: http://prattski.com/2010/06/24/magento-overriding-core-files-blocks-models-resources-controllers/

    【讨论】:

    • 谢谢你,事实上我这样做了,但我需要在 require_once("Mage/Checkout/controllers/CartController.php"); 上显式添加一个要求;
    • 你能用完整的 config.xml 和控制器代码更新你的帖子吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多