Search code examples
phpmagento

Magento, Override local controller with other local controller


I am trying to override local codepool extension controller with the other local extension, but its not working, don't know the reason, firstextension is the extension I want to override by secondextension

here is my code

config.xml

<admin>
    <routers>
        <firstextension>
            <args>
                <modules>
                    <Namespace_Secondextension before="Namespace_Firstextension">Namespace_Secondextension_Adminhtml</Namespace_Secondextension>
                </modules>
            </args>
        </firstextension>
    </routers>
</admin>

and controller

<?php

  require_once 'local/Namespace/Firstextension/controllers/Adminhtml/CustomController.php';
  class Namespace_Secondextension_Adminhtml_CustomController extends Namespace_Firstextension_Adminhtml_CustomController
  {
      public function saveAction()
      { 
      }
  }

Solution

  • Solved by Changing

     require_once 'local/Namespace/Firstextension/controllers/Adminhtml/CustomController.php';
    

    to

    getModuleDir('controllers','Namespace_Firstextension').DS.'Adminhtml'.DS.'CustomController.php';
    

    And also

     <Namespace_Secondextension before="Namespace_Firstextension">Namespace_Secondextension_Adminhtml</Namespace_Secondextension>
    

    to

      <Namespace_Secondextension before="Namespace_Firstextension">Namespace_Secondextension</Namespace_Secondextension>