Drupal switch theme by node
This article explains how to switch your theme. In our example we will switch the theme if one of the fields of our node has a certain value.
Use hook_init() to accomplish this.
<?php function thuis_sanitech_extra_init() { if (arg(0) == 'node' && is_numeric(arg(1))) { $node = node_load(arg(1)); global $user; if ($node->field_theme_keuze[0]['value'] == 1) { //load appropriate theme $user->theme = 'affaires'; init_theme(); } if ($node->field_theme_keuze[0]['value'] == 0) { //load appropriate theme $user->theme = 'sanitechniek'; init_theme(); } } } ?>
What you need to do is set the global user->theme to the right theme and run init_theme(). That's it.
Comments
Drupal switch theme by node
Thanks Dominique, It's an nice article! However I wonder if we can use the global $custom_theme variable instead of setting $user->theme?
Please check here
http://api.drupal.org/api/global/custom_theme
Thanks,
Andy
Drupal switch theme by node
Using global $custom thema wil cause the themel to change for all users in our case that would be allright too
Add new comment