How to make a module layout to be shown on all themes

Put everything in the base/default paths.

Example:

app/design/frontend/base/default

skin/frontend/base/default


The hard truth is, you can't really guarantee that they will be. Putting your files in base/default (or default/default if they override core templates - as you don't want to overwrite base files with a module install, though this forces you to keep duplicates for enterprise edition) will guarantee that they become the fallbacks, but theme files will always be highest level priority.

Most modules come with an install guide, which includes mentioning to copy the template files to the user's theme if they have a custom one. That's about the best you can do.


One thing that we've used a couple of times is [Fabrizio Branca][1]'s [Custom Fallback][2] modlue. It's a very useful module for specifying your own custom theme fallback hierarchy. One thing you can do is specify:

  1. custom/theme

  2. base/default

  3. default/default

Then any modules that put their own templates in the default/default theme. Won't work if they are trying to override base/default packages.

You can specify any number of packages/themes in the custom fallback hierarchy.

[1]: http://www.fabrizio-branca.de/ [2]: http://www.fabrizio-branca.de/custom-design-fallbacks-in-magento.html