Question

What is the correct way to change the active Drupal theme programmatically?

Was it helpful?

Solution

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');
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top