[gelöst] Hauptmenüpunkt aktiv bei Unterseite
Eingetragen von pb83 (46)
am 07.06.2016 - 14:47 Uhr in
am 07.06.2016 - 14:47 Uhr in
Hallo,
ich habe eine Seite die heisst "Leistungen" in der Seite gibt es Unterseiten z.B. "Reparatur".
So nun ist es so, dass wenn ich z.B. auf "http://drupalseite.de/leistungen/" gehe der Menüpunkt "Leistungen" im Hauptmenü aktiv ist (andere Farbe).
Was auch richtig ist. :)
Gehe ich jetzt aber auf "http://drupalseite.de/leistungen/reparatur" soll Leistungen auch aktiv sein, ist es aber natürlich nicht weil ich mich auf einer anderen
Seite befinde.
Kann mir jemand sagen wie ich das hinbekomme, dass der Hauptmenüpunkt unter dem sich die Unterseite befindet trotzdessen aktiv in der Navigation angezeigt wird?
Sozusagen einen "Trail".
Vielen Dank und Grüße
Paul
- Anmelden oder Registrieren um Kommentare zu schreiben
in der regel per css in
am 07.06.2016 - 15:14 Uhr
in der regel per css in deinem theme
C.A.W. Webdesign
Dafür gibt es sogar Module-
am 07.06.2016 - 23:24 Uhr
Dafür gibt es sogar Module- Eins davon hatte ich mal im Einsatz, weiß aber leider nicht mehr welches (ich glaube das Menu Position Module für Drupal 7):
https://www.drupal.org/project/menu_position
https://www.drupal.org/project/menu_trail_by_path
WEBTRANSFORMER
danke für eure antworten.
am 08.06.2016 - 08:29 Uhr
danke für eure antworten.
habe es jetzt über eine funktion gelöst.
<?php
function theme_preprocess_menu(&$variables, $hook) {
if ($hook == 'menu') {
$current_path = \Drupal::request()->getRequestUri();
$items = $variables['items'];
foreach ($items as $key => $item) {
// Set active to dom element if path of menu item matches current path
if ($item['url']->toString() == $current_path) {
// Add active link.
$variables['items'][$key]['attributes']->addClass('active');
} else {
// Set active to dom element if path of menu item matches first part of current path
$url_fragments = explode('/', $current_path);
if (count($url_fragments) > 1 AND '/' . $url_fragments[1] == $item['url']->toString()) {
$variables['items'][$key]['attributes']->addClass('active');
}
}
}
}
}
?>
Im Bartik-Theme
am 09.06.2016 - 13:47 Uhr
haben die aktiven Menüpunkte die Klasse "active-trail". Und Bartik ist core.
Die Klasse "active" hinzuzufügen, mag gehen, ist aber sinnentstellend.
Wilfried
Drupal: a CMS without typo in its name
Auf Drupal.org bin ich als Pepe Roni unterwegs!