我为我的主页创建了一个新模板,只有一个注册和登录表单。到目前为止,这两个窗体上的操作都是我调用的默认操作,如下所示:
echo Mage::helper('customer')->getRegisterPostUrl()
注册表格和
登录表单echo Mage::helper('customer')->getLoginPostUrl()
。
我现在正在尝试覆盖客户控制器以更改这些表单的操作。到目前为止,我有:一个。创建了一个新模块并编辑了app/code/local/MyCo/Homepage/etc/config.xml
文件,如下所示:
<?xml version="1.0"?>
<config>
<modules>
<MyCo_Homepage>
<version>0.1.0</version>
</MyCo_Homepage>
</modules>
<frontend>
<routers>
<args>
<modules>
<myco_homepage before="Mage_Customer_AccountController">MyCo_Homepage</myco_homepage>
</modules>
</args>
</routers>
</frontend>
</config>
b. 在文件app/code/local/MyCo/Homepage/controllers/IndexController.php
中创建了一个控制器,并从Mage_Customer_AccountController
扩展了它,如下所示:
require_once 'Mage/Customer/controllers/AccountController.php';
class Bemaad_Homepage_IndexController extends Mage_Customer_AccountController
{
public function loginPostAction()
{
}
public function createPostAction()
{
}
}
我的问题是:我不知道在表单的操作属性中放入什么,Magento似乎没有注册我的新控制器。
有谁知道我在哪里犯了错误,或者我忘记了什么?
谢谢!
您的配置应如下所示
<?xml version="1.0"?>
<config>
<modules>
<MyCo_Homepage>
<version>0.1.0</version>
</MyCo_Homepage>
</modules>
<frontend>
<routers>
<customer>
<modules>
<myco_homepage before="Mage_Customer">MyCo_Homepage</myco_homepage>
</modules>
</customer>
</routers>
</frontend>
</config>
此外,重载控制器类必须与重载控制器类具有相同的控制器名称。
所以与其Bemaad_Homepage_IndexController不如Bemaad_Homepage_AccountController
请参阅此处以供参考:http://www.magentocommerce.com/wiki/5_-_modules_and_development/0_-_module_development_in_magento/how_to_overload_a_controller