在drupal中以编程方式更改管理主题

时间:2012-06-01 07:37:17

标签: drupal drupal-6

如何以编程方式设置管理主题?

现在我正在为匿名用户使用公共主题,为成员使用成员主题。我正在使用角色主题切换器来实现这一目标 现在我希望我的管理主题为rubik。我试图从/ admin / settings / admin更改它,但它没有影响。

有没有办法做到这一点?我希望我的网站前端的公共主题和后端的rubik主题。

2 个答案:

答案 0 :(得分:3)

管理主题存储在variable表中;你可以用这样的代码更新它:

variable_set('admin_theme', 'theme_name');

答案 1 :(得分:2)

您还可以将主题分配给特定路径。

将管理主题应用于路径/SOMEPATH/*

function MYMODULE_custom_theme() {
  if (arg(0) == 'SOMEPATH') {
    return variable_get('admin_theme');
  }
}

将管理主题应用于路径别名/SOMEPATH/*

function MYMODULE_custom_theme() {
  //drupal_get_path_alias() may interfere with Global Redirect module
  $arg = explode('/', substr(drupal_get_path_alias(request_uri(), 1), strlen(base_path())));
  if ($arg[0] == 'SOMEPATH') {
    return variable_get('admin_theme');
  }
}

将自定义主题应用于/admin/*

function MYMODULE_custom_theme() {
  if (arg(0) == 'admin') {
    return 'MYADMINTHEME'; //list_themes() to see available themes
  }
}

选择一个功能并将其插入模块中,用模块名称替换MYMODULE。