Aktiverad meny-item baserad på URL

Events happening in the community are now at Drupal community events on www.drupal.org.
adamevertsson's picture

Så här är läget:

På en hemsida har vi som Primary Links: Kalendarium - Galleri - Blanketter - Om oss - Kontakt

Om man klickar på Galleri kommer man till galleriet och meny-alternativet blir understruket för att visa var man är.

Man kan också surfa till galleri/utbildning för att komma till bilder gällande utbildningar.

Finns det någon möjlighet att få meny-alternativet Galleri att fortfarande vara understruket? Bara utifrån URLen? Har testat att lägga till Menu Trail, secondary links men får det inte att fungera. Går det över huvud taget att göra så som jag tänkt?

/AE

Comments

Menutrails eller Context

JockeL's picture

Menutrails tilldelar alla aktiva alternativ i menystrukturen css-klassen .active-trail, som du sedan använder för att tema dina länkar.

Du kan också använda Context för att markera menyalternativ t.ex. beroende på nodtyp som visas, hur url:en ser ut m.m.

Gr8

adamevertsson's picture

Tack så mycket för tipset om Context, den modulen kommer att skänka mig mycket nytta i framtiden - och löste mycket riktigt problemet som jag hade nu.
Grymt!

/AE




✄-----------------------------------------------------
Adam Evertsson - Came for the code, stayed for the community!

En riktigt fiffig grej man

ChristianP's picture

En riktigt fiffig grej man kan göra annars är att man använder Drupals inbyggda body classes på Bodyn. Det innebär att om du står under sidan "Galleri", så skapar Drupal en body class som heter nåt i stil med <body class="section-galleri">. Sen är det bara att gå in i CSS och skriva .section-galleri #nav .menu-xx a {text-decoration:underline}.

Du behöver den här function från Blueprint-temat i din template.php:

<?php
function phptemplate_body_attributes($is_front = false, $layout = 'none') {

  if (
$is_front) {
   
$body_id = $body_class = 'homepage';
  }
  else {
   
// Remove base path and any query string.
   
global $base_path;
    list(,
$path) = explode($base_path, $_SERVER['REQUEST_URI'], 2);
    list(
$path,) = explode('?', $path, 2);
   
$path = rtrim($path, '/');
   
// Construct the id name from the path, replacing slashes with dashes.
   
$body_id = str_replace('/', '-', $path);
   
// Construct the class name from the first part of the path only.
   
list($body_class,) = explode('/', $path, 2);
  }
 
$body_id = 'page-' . $body_id;
 
$body_class = 'section-'. $body_class;

 
// Use the same sidebar classes as Garland.
 
$sidebar_class = ($layout == 'both') ? 'sidebars' : "sidebar-$layout";

  return
"$body_class $sidebar_class";
}
?>

Samt skriva detta i Body-taggen i page.tpl.php

<body class="<?php print $body_classes; ?> <?php print phptemplate_body_attributes($is_front, $layout); ?>">

Detta innebär att alla sidor som har "galleri" i URLen (www.exempel.se/galleri, www.exempel.se/galleri/album1) kommer ha classen .section-galleri i sig, så menyn kommer vara understruken på alla dessa tills du går vidare till nåt utan "galleri" i URLen. :)

Om man använder t.ex. Menu Block och hämtar menylänkarna från Primary Links t.ex. så får a-taggarna automatiskt en active-trail class, det är också ett sätt att lösa det på.

Sweden

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: