Considering that the change is for a limited period of time, and that implementing such code is not difficult (I am not talking of changing the core code, which is not a good idea to do), I would suggest to implement a custom module that changes the theme being used for specific pages.
It is enough to implement hook_custom_theme() as follows:
function mymodule_custom_theme() {
if (arg(0) == 'event2011') {
return 'the theme to use for that page';
}
}
If you would need to change the theme only for http://example.com/event2011, but not forhttp://example.com/event2011/node/123, then the code should be changed to
function mymodule_custom_theme() {
if (arg(0) == 'event2011' && !arg(1)) {
return 'the theme to use for that page';
}
}
As for using the theme callbacks in the definition of a menu callback, the documentationsays:
As a general rule, the use of theme callback functions should be limited to pages whose functionality is very closely tied to a particular theme, since they can only be overridden by modules which specifically target those pages in hook_menu_alter()
. Modules implementing more generic theme switching functionality (for example, a module which allows the theme to be set dynamically based on the current user's role) should use hook_custom_theme()
instead.