gpt4 book ai didi

magento - 扩展 magento 核心 Controller (Checkout/OnepageController)

转载 作者:行者123 更新时间:2023-12-02 04:05:24 25 4
gpt4 key购买 nike

我在覆盖核心 Controller 时遇到问题。我想添加一个新函数,但它只有在我在核心文件(code/core/checkout/controllers/onepagecontroller.php)中执行时才有效。

我关注了一些帖子,但它不起作用。他们之中有一些是:

  • http://www.magentocommerce.com/boards/viewthread/32979/P0/
  • http://www.webspeaks.in/2011/03/override-controllers-in-magento.html
  • www.magentocommerce.com/wiki/5__-_modules_and_development/0__-_module_development_in_magento/how_to_overload_a_controller

  • (我无法添加更多链接,抱歉)

    我不知道发生了什么......也许你可以帮助我;)。

    我正在使用 magento 1.5,我有这 3 个文件:

    本地 -> Arias -> CoreExtended -> 等 -> config.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <config>
    <modules>
    <Arias_CoreExtended>
    <version>0.1.0</version>
    </Arias_CoreExtended>
    </modules>

    <frontend>
    <routers>
    <checkout>
    <args>
    <modules>
    <Arias_CoreExtended before="Mage_Checkout">Arias_CoreExtended_Checkout</Arias_CoreExtended>
    </modules>
    </args>
    </checkout>
    </routers>
    </frontend>
    </config>

    应用程序 -> 等 -> 模块 -> Arias_CoreExtended.xml
    <?xml version="1.0"?>
    <config>
    <modules>
    <Arias_CoreExtended>
    <active>true</active>
    <codepool>local</codepool>
    </Arias_CoreExtended>
    </modules>
    </config>

    本地 -> Arias -> CoreExtended -> Controller -> Checkout -> OnepageController.php
    <?php

    require_once 'Mage/Checkout/controllers/OnepageController.php';

    class Arias_CoreExtended_Checkout_OnepageController extends Mage_Checkout_OnepageController
    {
    public function collectAction()
    {
    echo 'WTF?';
    }

    public function indexAction()
    {
    echo "This controller has been overridden.";
    }
    }

    提前感谢您的时间,问候。

    最佳答案

    我将首先镜像您正在覆盖的 Controller 的相同目录结构,因此在这种情况下更改:local/Arias/CoreExtended/controllers/Checkout/OnepageController.phplocal/Arias/CoreExtended/controllers/OnepageController.php
    您应该小写您的命名空间/模块名称,并且您需要删除 _Checkout因为它通常会覆盖 Controller ,并且如果不回退到标准,它将查找模块中存在的任何 Controller 以使用它们。正确的代码是:

    <arias_coreextended before="Mage_Checkout">Arias_CoreExtended</arias_coreextended>

    我已经成功地使用了这个精确的设置来覆盖 Onepage Controller !

    关于magento - 扩展 magento 核心 Controller (Checkout/OnepageController),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7918499/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com