What is the correct way to change the active Drupal theme programmatically?
views:
69answers:
1
+5
A:
Edit: here is a simpler example.
It uses Garland regardless of the theme setting. Note that this overrides the admin theme setting too.
function MODULENAME_init(){
global $custom_theme;
$custom_theme = 'garland';
}
Edit: changing globally.
And if you meant changing the theme setting in the database instead of just on the current page, here is how:
// Changes the theme to Garland
variable_set('theme_default', 'garland');
// Changes only the administration theme to Garland
variable_set('admin_theme', 'garland');
wildpeaks
2010-10-21 21:10:06
On the current page.
markdorison
2010-10-21 21:15:55
The global $custom_theme variable is probably what you're looking for, but it should be modified early enough for the whole page to use only one theme, and hook_init is a good location to do that.
wildpeaks
2010-10-21 21:24:19
What if you just want to make the admin theme active?
markdorison
2010-10-25 17:02:48