检索当前的Drupal主题?

时间:2010-07-19 14:24:00

标签: drupal drupal-6

在模块的上下文中,如何确定为当前用户加载的主题?

drupal_get_path
path_to_theme

这些都没有任何好处,因为它们似乎只能在主题的template.php中使用。

2 个答案:

答案 0 :(得分:3)

如果允许用户为自己选择主题,则他们选择的主题将保存在$user->theme中,其中$user是用户对象。 如果模块设置了自定义主题,则全局变量$custom_theme包含当前设置的主题的名称。

以下代码段在$current_theme中保存当前有效主题的名称:

global $custom_theme, $theme, $user;

if (!empty($user->theme)) {
  $current_theme = $user->theme;
}
elseif (!empty($custom_theme)) {
  $current_theme = $custom_theme;
}
else {
  $current_theme = $theme ? $theme : variable_get('theme_default', 'garland');
}

答案 1 :(得分:1)

path_to_theme应该可以正常工作,我在两个Drupal安装上进行了测试,两者都有效。如果主题尚未初始化,path_to_theme将执行此操作,这是Drupal在内部用于设置不同的全局主题变量,如$theme_path,这是您要查找的变量。