OnepageController is not overloading/rewriting with my custom controller
magento, magento-1.5
Solution
CamelCase strikes again.
Odc_Mycheckout.xml file: \app\etc\module\Odc_Mycheckout.xml
<?xml version="1.0"?>
<config>
<modules>
<Odc_Mycheckout>
<active>true</active>
<codePool>local</codePool> <!-- Capital P in pool -->
Also, in your module config file:
<frontend>
<routers>
<checkout> <!-- must match the router config you are trying to override -->
<args>
<modules>
<Odc_Mycheckout before="Mage_Checkout">Odc_Mycheckout</Odc_Mycheckout>
</modules>
</args>
</checkout>
</routers>
</frontend>
EDIT:
To troubleshoot when rewritten controllers aren't working it can help to go back to basics. One approach is to use the same methods as `Mage_Core_Controller_Varien_Router_Standard`. In a script test.php:
<?php
ini_set('display_errors',1);
include 'app/Mage.php';
Mage::setIsDeveloperMode(true);
Mage::app();
$module = 'Odc_Mycheckout';
$controller = 'Onepage';
$router = new Mage_Core_Controller_Varien_Router_Standard;
$filename = $router->getControllerFileName($module,$controller);
$classname = $router->getControllerClassName($module,$controller);
include $filename;
$controller = Mage::getControllerInstance(
$classname,
Mage::app()->getRequest(),
Mage::app()->getResponse()
);
var_dump($controller); //should be a class
Problem
I am trying to overload/rewrite the core Onepagecontroller with my custom controller in local pool, but it is not working. I am using Magento 1.5.1 Here is my file structure and code: Controller file: \app\code\local\Odc\Mycheckout\controllers\OnepageController.php ``` require_once 'Mage/Checkout/controllers/OnepageController.php'; class Odc_Mycheckout_OnepageController extends Mage_Checkout_OnepageController { public function indexAction() { echo "This controller has been overridden."; } } ``` config.xml file: \app\code\local\Odc\Mycheckout\etc\config.xml ``` <?xml version="1.0"?> <config> <modules> <Odc_Mycheckout> <version>0.0.1</version> </Odc_Mycheckout> </modules> <global> <controllers> <Mage_Checkout> <rewrite> <onepage>Odc_Mycheckout_Onepage</onepage> </rewrite> </Mage_Checkout> </controllers> </global> <frontend> <routers> <mycheckout> <args> <modules> <Odc_Mycheckout before="Mage_Checkout">Odc_Mycheckout</Odc_Mycheckout> </modules> </args> </mycheckout> </routers> </frontend> </config> ``` Odc_Mycheckout.xml file: \app\etc\module\Odc_Mycheckout.xml ``` <?xml version="1.0"?> <config> <modules> <Odc_Mycheckout> <active>true</active> <codepool>local</codepool> </Odc_Mycheckout> </modules> </config> ```