3

管理テーマをプログラムで設定するにはどうすればよいですか?

現在、匿名ユーザーにはパブリック テーマを、メンバーにはメンバー テーマを使用しています。これを実現するために、ロールテーマスイッチャーを使用しています。
今、管理テーマをルービックにしたいです。/admin/settings/admin から変更しようとしましたが、効果がありません。

これを行う方法はありますか?サイトのフロント エンドにはパブリック テーマ、バックエンドには rubik テーマが必要です。

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 に答える