覆盖Magento客户控制器以具有自定义表单操作



我为我的主页创建了一个新模板,只有一个注册和登录表单。到目前为止,这两个窗体上的操作都是我调用的默认操作,如下所示:
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

最新更新