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:
custom/theme
base/default
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