1

i am trying to create an adminhtml module. I need to change the adminhtml design heavily for this module. I've overridden some blocks which changed the html of the admin panel. But the problem is most of the default admin action breaks (like the menu, button on click actions).

I'm able to remove the updates by commenting the overrides to block and theme in my config.xml file. Is there any programmatic way to remove the overrides made by my module, so i can continue to use the default admin panel whenever i need.

1

I'm not sure what you are asking here. You've created an extension that doesn't work and you want a way to disable the made changes from time to time at the moment you do want to be able to have a working backend?

To turn off an extension temporarily you can set the <active> tag to false in the extensions app/etc/modules/[Namespace]_[Module].xml file and clear the cache afterwards if turned on.

1

If you overwrite a block there is no way to get the old behaviour.

But what you can do is change the layout.xml files to use your blocks when you need them and use the originals when you need the originals. Without rewriting anyhing.

  • how can i implement that logic in layout.xml? – shahalpk Nov 11 '13 at 4:19
1

Another option would be to have a setting in your module like "Disable block overwrites" which you can set to true / false (this can be created using the system.xml of your module).

Then in your overwritten block (just an example):

class Your_Module_Block_Adminhtml_Example extends Adminhtml_Example_Block_Before {
   public function toHtml() {
      if (Mage::getConfig('your/setting/disableOverwrites')) {
          return parent::toHtml();
      } 
      // Your custom logic if the setting is set to false
   }
}

If you do it like this in all overwrites, you are able to disable them using your flag at any time.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.