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> ```

Original source