Untuk menguraikan jawaban Nikhil Mohan, Anda dapat menerapkan template_preprocess_html()
di dalam file template.php tema Anda. Baca dokumentasi tentang Overriding Themable Output untuk memahami dasar-dasar apa yang terjadi di sini.
Dalam fungsi ini, Anda memiliki akses ke variabel $vars['classes_array']
, yang berisi daftar kelas yang akan diterapkan pada <body>
tag HTML pada halaman.
Sayangnya, informasi tentang lokasi halaman saat ini di menu tidak segera tersedia. Anda dapat menggunakan menu_get_item()
dan kemudian menu_get_ancestors()
untuk mendapatkan informasi ini, tetapi itu adalah banyak kekuatan pemrosesan untuk sesuatu yang mungkin bisa kita dapatkan dengan pendekatan yang lebih sederhana.
Dengan asumsi Anda menggunakan modul pathauto untuk secara otomatis membuat jalur semantik untuk halaman konten Anda berdasarkan jalur menu (yaitu, halaman Melbourne Theme Parks Anda akan memiliki jalur 'melbourne / theme_parks'), Anda dapat menggunakan jalur halaman untuk membuat kelas yang Anda inginkan. mencari:
function THEMENAME_preprocess_html(&$vars) {
$path = drupal_get_path_alias();
$aliases = explode('/', $path);
foreach($aliases as $alias) {
$vars['classes_array'][] = drupal_clean_css_identifier($alias);
}
}
Itu dia. Drupal sekarang akan melihat alias path dari halaman saat ini dan menambahkan kelas ke <body>
tag untuk setiap potongan alias path.
static
cache pada saat itu, jadi hampir tidak ada overhead.$vars['attributes_array']['class'][] = drupal_clean_css_identifier($alias);
Anda dapat menggunakan
template_preprocess_html
, variabel Preprocess mana untuk html.tpl.phpLihat juga html.tpl.php
sumber
Berikut adalah modul untuk menambahkan kelas pada tag tubuh berdasarkan peran atau halaman.
Kelas Tubuh Umum
sumber
Membuat modul Drupal Kelas Tubuh untuk membantu ini. Jangan ragu untuk membuat masalah untuk menambahkan lebih banyak poin integrasi kelas tubuh.
sumber