Um die Antwort von Nikhil Mohan zu erläutern, können Sie sie template_preprocess_html()
in die template.php-Datei Ihres Themas implementieren . Lesen Sie die Dokumentation zu Overriding Themable Output , um die Grundlagen der hier beschriebenen Vorgänge zu verstehen.
Innerhalb dieser Funktion haben Sie Zugriff auf die Variable $vars['classes_array']
, die eine Liste von Klassen enthält, die auf das HTML- <body>
Tag auf der Seite angewendet werden .
Leider sind Informationen zur Position der aktuellen Seite im Menü nicht sofort verfügbar. Sie könnten menu_get_item()
und dann verwenden menu_get_ancestors()
, um diese Informationen zu erhalten, aber das ist eine Menge Rechenleistung für etwas, das wir wahrscheinlich mit einem Simpiler-Ansatz erreichen können.
Angenommen, Sie verwenden das pathauto-Modul, um automatisch semantische Pfade für Ihre Inhaltsseiten basierend auf dem Menüpfad zu erstellen (dh Ihre Melbourne Theme Parks-Seite würde den Pfad 'melbourne / theme_parks' haben), können Sie den Pfad der Seite verwenden, um die von Ihnen gewählten Klassen zu erstellen sind auf der Suche nach:
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);
}
}
Das ist es. Drupal überprüft nun den Pfadalias der aktuellen Seite und fügt dem <body>
Tag für jeden Abschnitt des Pfadalias eine Klasse hinzu .
static
zu diesem Zeitpunkt wahrscheinlich im Cache, also fast kein Overhead.$vars['attributes_array']['class'][] = drupal_clean_css_identifier($alias);
Sie können verwenden
template_preprocess_html
, welche Preprocess-Variablen für html.tpl.php verwendet werdenSiehe auch html.tpl.php
quelle
Hier ist das Modul zum Hinzufügen von Klassen zu Body-Tags basierend auf Rollen oder Seiten.
Gemeinsame Körperklasse
quelle
Erstellt das Body Classes Drupal-Modul , um dies zu unterstützen. Fühlen Sie sich frei, Probleme zu erstellen, um weitere Integrationspunkte für die Körperklasse hinzuzufügen.
quelle