扩展magento核心控制器(签出/OnepageController)
我在重写核心控制器时遇到问题。我想添加一个新函数,但只有在核心文件(code/core/checkout/controllers/onepagecontroller.php)中添加它时,它才能工作 我关注过一些帖子,但它不起作用。其中包括:扩展magento核心控制器(签出/OnepageController),magento,controller,overriding,extend,Magento,Controller,Overriding,Extend,我在重写核心控制器时遇到问题。我想添加一个新函数,但只有在核心文件(code/core/checkout/controllers/onepagecontroller.php)中添加它时,它才能工作 我关注过一些帖子,但它不起作用。其中包括: www.magentocommerce.com/wiki/5_uu--u模块和_开发/0_uu--u模块_开发_in_magento/how_to_过载_a_控制器 (对不起,我无法添加更多链接) 我不知道发生了什么。。。也许你能帮助我 我使用的是m
- www.magentocommerce.com/wiki/5_uu--u模块和_开发/0_uu--u模块_开发_in_magento/how_to_过载_a_控制器
local->Arias->CoreExtended->etc->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>
0.1.0
阿里亚斯•科鲁扩展•科鲁结帐
app->etc->modules->Arias\u CoreExtended.xml
<?xml version="1.0"?>
<config>
<modules>
<Arias_CoreExtended>
<active>true</active>
<codepool>local</codepool>
</Arias_CoreExtended>
</modules>
</config>
真的
地方的
本地->阿里亚斯->核心扩展->控制器->签出->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.";
}
}
我会尽量降低名称空间/模块名称的大小写,如下所示:
Arias\u CoreExtended\u Checkout
我会首先镜像您正在覆盖的控制器的相同目录结构,因此在本例中更改:local/Arias/CoreExtended/controllers/Checkout/OnepageController.php
为local/Arias/CoreExtended/controllers/OnepageController.php
您应该将名称空间/模块名称小写,并且您需要删除\u Checkout
,因为它通常会覆盖控制器,如果不返回标准,您将查找模块中存在的任何控制器以使用它们。正确的代码是:
<arias_coreextended before="Mage_Checkout">Arias_CoreExtended</arias_coreextended>
Arias\u
我已经成功地使用了这个精确的设置来覆盖Onepage控制器 你的方法基本上是正确的@satumo。你唯一应该改变的就是这条线
<Arias_CoreExtended before="Mage_Checkout">Arias_CoreExtended</Arias_CoreExtended>
Arias\u
因此,您的完整配置必须如下所示:
<?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</Arias_CoreExtended>
</modules>
</args>
</checkout>
</routers>
</frontend>
</config>
0.1.0
阿里亚斯
它不起作用。还有什么我可以试试的吗?谢谢你的帮助。