回答:
contribモジュールがありThemeKeyがあること
現在のパス、分類用語、言語、ノードタイプ、および他の多くのプロパティに応じてテーマを自動選択できる、シンプルまたは洗練されたテーマ切り替えルールを定義できます。また、他のモジュールによって公開される追加のプロパティをサポートするために簡単に拡張できます。Drupalのテーマの継承およびThemeKeyプロパティと組み合わせて、次のような機能を簡単に実現できます。
個別にスタイル設定されたチャンネルフロントページ/「スプラッシュ」画面日付/時刻選択されたクリスマステーマモバイルテーマさまざまな自動検出モバイルデバイス「限定」または「古い」ブラウザコンテンツ、ユーザー、またはロール固有のテーマ用の特別なテーマ環境(運用、ステージング、テスト、サンドボックスなど)を示して、ライブサーバーで安全に再設計をテストする
関連する質問もこちらで確認してください。
また、カスタムモジュールを作成してこれを行うこともできます。
方法1
これは、Drupalの内部パス(別名パスソース)に基づいて、既存のページをテーマにしたい場合に使用します。この例ではhook_custom_themeを使用します。
<?php
function MYMODULE_custom_theme() {
// match node/1
if (arg(0) == 'node' && arg(1) == '1') {
return variable_get('admin_theme');
}
}
方法2
URLパス(別名パスエイリアス)に基づいて既存のページをテーマにしたい場合に使用します。この例でもhook_custom_themeを使用しています。
<?php
function MYMODULE_custom_theme() {
// get arguments
$arg = explode('/', substr(request_uri(), strlen(base_path())));
// match {wildcard}/path
// Using strpos as $arg[1] may end up having stuff like so ?order=title&sort=asc
if (isset($arg[1]) && strpos($arg[1], 'path') !== false && !isset($arg[2])) {
return variable_get('admin_theme');
}
}
方法3
テーマを設定してページを作成する場合に使用します。この例ではhook_menuを使用します。詳細については、hook_menuに関する別のすばらしい記事をご覧ください。
<?php
function MYMODULE_menu() {
$items = array();
// match some/path
$output['some/path'] = array(
'title' => t('Page Title'),
'page callback' => 'MYMODULE_page',
'theme callback' => 'variable_get',
'theme arguments' => array('admin_theme'),
)
}
function MYMODULE_page() {
return 'Hello world.';
}
モジュール開発者の場合、hook_admin_pathsを使用して、管理テーマでレンダリングされるパスを定義できます。