Apa cara yang benar untuk mengubah tema Drupal yang aktif secara terprogram?
22
Solusi Drupal 6:
Anda ingin memastikan Anda mengubah $custom_theme
variabel global cukup awal dalam eksekusi halaman.
global $custom_theme;
$custom_theme = 'garland';
$custom_theme
didefinisikan? apakah cukup untuk mengubah tema?hook_custom_theme
api.drupal.org/api/drupal/modules%21system%21system.api.php/…Saya tahu Anda bertanya bagaimana melakukannya secara terprogram, tetapi jika itu solusi Anda, bukan masalah sebenarnya, Anda juga dapat menggunakan modul ThemeKey . Ini memungkinkan Anda untuk mengatur kondisi yang, ketika bertemu, mengubah tema. Anda dapat membuat kondisi berdasarkan jalur, taksonomi, tipe konten, buat atau edit tanggal dan banyak lagi. Anda juga dapat menambahkan modul modul Properti Themekey untuk mendapatkan lebih banyak opsi.
Sekali lagi, saya tahu ini tidak terprogram, tetapi saya tidak yakin apakah pertanyaan sesungguhnya di balik pertanyaan Anda adalah bagaimana mengubah tema berdasarkan kondisi.
sumber
Cara terbaik untuk melakukan ini adalah dengan membuat kait pembaruan dalam modul:
sumber
Mengubah tema aktif melalui Drush
Mengubah tema aktif melalui modul
Dasar-dasar mengubah tema default dan tema administrasi:
Berikut adalah fungsi kecil untuk mengatur kembali tema dengan aman ke tema Drupal default seperti Bartik atau Garland (diuji dalam Drupal 6 dan 7):
Anda dapat menyebutnya dalam implementasi hook_init () (beri komentar setelah itu tidak diperlukan):
sumber
variable_set('theme_default','yourtheme');
Di Drupal 7, gunakan
hook_custom_theme()
:Diadaptasi dari <emoticode />
Kembalikan nama tema yang dapat dibaca mesin untuk digunakan untuk halaman saat ini.
Komentar untuk fungsi ini mungkin layak dibaca:
sumber
Untuk Drupal 8:
Dalam settings.php
Perbarui konfigurasi secara programatik:
sumber