3

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

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

有没有办法做到这一点?我想要我的网站前端的公共主题和后端的魔方主题。

4

2 回答 2

3

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

variable_set('admin_theme', 'theme_name');
于 2012-06-01T21:30:52.593 回答
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 替换为模块名称。

于 2014-03-06T00:32:55.467 回答