似乎无法覆盖Magento中的Checkout Controller

时间:2011-08-18 15:31:38

标签: magento

我正在尝试对Magento商店中的Checkout控制器进行一些更改,但是,当我尝试将控制器文件放入我的本地目录时,它似乎并不尊重本地文件。

我已经检查过这些文件位于各自代码池中的相同位置,并且这些文件的名称相同,它只是不会这样做。

  • /app/code/core/Mage/Checkout/controllers|CartController.php
  • /app/code/local/Mage/Checkout/controllers|CartController.php

这些是我拥有的两个文件的文件路径。

Magento中的结帐文件有什么特别之处可以阻止它们被覆盖吗?

2 个答案:

答案 0 :(得分:14)

仅供参考,仅将相关文件放在具有相同文件夹结构的本地文件夹中,控制器覆盖不起作用。相反,您需要遵循以下语法:

<config>
    <frontend> [1]
        <routers>
            <checkout> [2]
                <args>
                    <modules>
                        <yourModule before="Mage_Checkout">Namespace_Module_Overwrite_Checkout</yourModule> [3]
                    </modules>
                </args>
            </checkout>
        </routers>
    </frontend>
</config>
[1] Depending on the controllers area ,"frontend" or "admin"
[2] Router node of the module to be overridden (look it up in the config.xml of that module)
[3] The tag  can be anything, it must be unique within the  node.
Your_Module_Overwrite_Checkout (is mapped to directory)
Your/Module/controllers/Overwrite/Checkout/

Hope this helps.
Regards
MagePsycho

答案 1 :(得分:1)

阅读lichal的Magento Wiki,了解完整的解决方案: https://wiki.magento.com/display/m1wiki/How+To+Overload+a+Controller