Nikhil Mohan'ın cevabını açıklamak template_preprocess_html()
için temanızın template.php dosyasının içine uygulayabilirsiniz . Burada olup bitenlerin temelini anlamak için Tematik Çıktıların Geçersiz Kılınması belgesini okuyun .
Bu işlev içinde , sayfadaki $vars['classes_array']
HTML <body>
etiketine uygulanacak sınıfların listesini içeren değişkene erişebilirsiniz .
Ne yazık ki, geçerli sayfanın menüdeki konumu ile ilgili bilgiler hemen mevcut değil. Bu bilgiyi almak için menu_get_item()
ve sonra kullanabilirsiniz menu_get_ancestors()
, ancak bu muhtemelen bir simpiler yaklaşımıyla ulaşabileceğimiz bir şey için çok fazla işlem gücüdür.
Menü yolunu temel alarak içerik sayfalarınız için otomatik olarak anlamsal yollar oluşturmak için pathauto modülünü kullandığınızı varsayalım (yani, Melbourne Tema Parkları sayfanızda 'melbourne / theme_parks' yolunu bulabilir), siz sınıfları oluşturmak için sayfanın yolunu kullanabilirsiniz. arıyoruz:
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);
}
}
Bu kadar. Drupal şimdi geçerli sayfanın yol diğer adına bakacak ve yol diğer adının <body>
her bir parçası için etikete bir sınıf ekleyecektir .
static
noktada önbellekte olması muhtemeldir , bu nedenle neredeyse hiç ek yükü yoktur.