Jawaban:
Ada modul contrib ThemeKey itu
memungkinkan Anda untuk menentukan aturan pengalihan tema sederhana atau canggih yang memungkinkan pemilihan otomatis tema tergantung pada jalur saat ini, istilah taksonomi, bahasa, tipe-simpul, dan banyak, banyak properti lainnya. Itu juga dapat dengan mudah diperluas untuk mendukung properti tambahan yang diekspos oleh modul lain. Dalam kombinasi dengan pewarisan tema Drupal dan Properti ThemeKey Anda dapat dengan mudah mencapai fitur seperti:
bergaya individual menyalurkan layar halaman depan / "percikan" tema ponsel tema Natal yang dipilih tanggal / waktu untuk berbagai perangkat seluler yang dideteksi secara otomatis tema khusus untuk konten, pengguna, atau peran "terbatas" atau "browser" browser tertentu menunjukkan lingkungan Anda (produksi, pementasan, pengujian, kotak pasir, ...) menguji desain ulang Anda dengan aman di server langsung
Lihat juga pertanyaan terkait di sini .
Anda juga dapat melakukan ini dengan membuat modul khusus.
Metode 1
Gunakan ini jika Anda ingin tema halaman yang ada, berdasarkan jalur internal Drupal (alias jalur sumber). Contoh ini menggunakan hook_custom_theme .
<?php
function MYMODULE_custom_theme() {
// match node/1
if (arg(0) == 'node' && arg(1) == '1') {
return variable_get('admin_theme');
}
}
Metode 2
Gunakan ini jika Anda ingin tema halaman yang ada, berdasarkan jalur URL (alias path alias). Contoh ini juga menggunakan 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');
}
}
Metode 3
Gunakan ini jika Anda ingin tema dan membuat halaman. Contoh ini menggunakan hook_menu . Untuk mempelajari lebih lanjut, lihat artikel hebat lainnya di 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.';
}
Jika Anda seorang pengembang modul, Anda dapat menggunakan hook_admin_paths untuk menentukan jalur mana yang akan diberikan dengan tema administrasi.
Cukup beri halaman path yang dimulai dengan admin: 'admin / mypage'
Fungsi ini sekarang ada di inti D7.
Ada modul yang secara efektif mengekspos "hook_admin_paths" ke UI: https://drupal.org/project/admin_theme