Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Themes & Theming ›

Aktiver Menüpunkt bei Drupal 5

Eingetragen von DrupalFan (1646)
am 14.04.2007 - 23:28 Uhr in
  • Themes & Theming

Es gibt zwar eine Anleitung, wie man einen aktiven Menüpunkt als "active" markieren kann (und damit über die CSS-Datei hervorheben kann), aber NICHT für Drupal 5.

In Drupl 5 wird das Hauptmenü ja so eingebunden:

<?php if (isset($primary_links)) : ?>
  <?php print theme('links', $primary_links, array('class' => 'links primary-links')) ?>
<?php endif; ?>

<?php if (isset($secondary_links)) : ?>
  <?php print theme('links', $secondary_links, array('class' => 'links secondary-links')) ?>
<?php endif; ?>

Wie kann man nun hier den aktiven Menüpunkt hervorheben?
Das ist ja schwer möglich, vorallem weil jetzt in Drupal 5 das ganze in die Funktion "print theme()" gewandert ist.

Zuvor ging das ja so:
http://drupal.org/node/46020

Aber was macht man nun in Drupal5???

Und wo finde ich mehr Infos über "print theme(...)" in Zusammenhang mit der Hauptnavigation?

Vielen Dank.

‹ Zwei Bereiche nebeneinander www.meindrupal.de/blog = Template? ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Menüpunkt nicht "active" wenn "<front>" statt "node/2"

Eingetragen von DrupalFan (1646)
am 15.04.2007 - 00:17 Uhr

Ich hab inzwischen herausgefunden, dass der aktive Menüpunkt automatisch als "active" markiert wird und damit aufgrund meiner CSS-Datei hervorgehoben wird, allerdings nur dann, wenn die einzelnen Menüpunkte in der Form "node/11", "node/12" einen Pfad verlinkt bekommen.

Um aber den Menüpunkt "Startseite" nicht eine URL "../?q=node/2" zuweisen zu müssen, gibt es ja die Möglichkeit, als Pfad bei diesem Menüpunkt statt "node/2" den Ausdruck "<front>" einzugeben.

Sobald ich aber "node/2" durch "<front>" ersetze, funktioniert zwar alles bestens und als Pfad wird eben nur der Domainname angezeigt (das ist also super), aber der Menüpunkt "Startseite" ist nicht mehr als "active" markiert.

Hier fehlt wohl etwas in der Programmierung.

Kann mir wer sagen, wo das programmiert ist, dass aktive Menüpunkte mit "active" markiert werden? Wenn ich das finde, kann ich das eventuell erweitern, dass es auch mit "<front>" funktioniert.

Vielen Dank.

Oder löst sich das Problem automatisch, wenn man auf suchmaschinenfreundliche URLs umstellt (was ich erst später machen wollte und daher noch nicht aktiviert habe)???

  • Anmelden oder Registrieren um Kommentare zu schreiben

Lösung gefunden

Eingetragen von DrupalFan (1646)
am 15.04.2007 - 00:59 Uhr

Für alle, die es interessiert, habe eine Lösung gefunden.

Habe in der Datei "common.inc" bei der Funktion l() folgenden Code zusätzlich eingebaut:

  if (($path == "<front>") && ($_GET['q'] == "node")) {
    if (isset($attributes['class'])) {
      $attributes['class'] .= ' active';
    }
    else {
      $attributes['class'] = 'active';
    }
  }

Funktioniert prima!!!

Aber ist es wirklich nötig, common.inc umzuschreiben?
Darf man common.inc umschreiben, ohne dass man später Probleme hat (bei Updates, etc)??

  • Anmelden oder Registrieren um Kommentare zu schreiben

bei mir sieht das so aus...

Eingetragen von CyberCore (139)
am 21.04.2007 - 01:21 Uhr

im template:

<ul>
        <?php              
       
foreach($primary_links AS $plinks){
           
            if(
$plinks['href'] == '<front>'){
               
$plinks['href'] = '';   
            }
                      
            if(
$_GET['q'] == $plinks['href']){
               
$cclass = ' id="current"';
            }elseif(
$_GET['q'] == 'node' AND $plinks['href'] == ''){
               
$cclass = ' id="current"';
            }
            else{
               
$cclass = '';
            }
           
           
$navbar .= "<li$cclass><a href=\"/".drupal_get_path_alias($plinks['href'])."\"><span>".$plinks['title']."</span></a></li>";
        }
        echo
$navbar;      
       
?>
      
   </ul>

----------------------------------------
Browser Automatisierung / SEO On- und Offpage - http://www.cybercore.de

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wo eingebaut?

Eingetragen von DrupalFan (1646)
am 23.04.2007 - 21:37 Uhr

Wo genau in welcher Datei hast Du das eingebaut?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Frage zu dem Thema "aktive Links"

Eingetragen von Chenook (nicht überprüft) (0)
am 08.05.2007 - 14:53 Uhr

Hallo, ich habe auch Fragen zu dem Thema "aktive Links":
Ich bin dabei eine bestehende Site auf Drupal 5.1 umzustellen, Theme Barlow in abgewandelter Form.
Die bestehenden Domain-URLs sollen sich nicht verändern, konnte über den Bereich zum Menü bearbeiten als Admin auch gleich angelegt werden.
www.meine-site.de/unterseite/

Nun gibt es aber auf der Site u.a. folgendes Problem:

- die "aktiven Links" werden im Menü-Block, an der Seite, nicht farblich hervor gehoben.

Dieses Problem ist unabhängig davon, welchen Theme ich nutze.
Ich vermute es liegt daran, dass wir die bestehenden URL´s beibehalten wollen, was sehr wichtig ist.
Ich habe auf den Seiten hier und auch Drupal.org versucht eine funktionierende Lösung zu finden, aber negativ. Leider verstehe ich nicht viel von php und es kann daran liegen, dass ich die Vorschläge hier auf der Site an falscher Stelle eingefügt habe oder nicht zu meiner Site passend modifiziert habe.

Ich hoffe jemand weiß Rat und kann mir weiterhelfen,

Chenook

  • Anmelden oder Registrieren um Kommentare zu schreiben

@DrupalFan: Was genau willst

Eingetragen von elias (72)
am 08.05.2007 - 16:28 Uhr

@DrupalFan: Was genau willst du denn erreichen? Dass jeder aktive Link eine class «active» bekommt? Oder soll diese Klasse ins Listenelement, das gerade gewählt ist? Oder gar in alle aktiven Listenelemente bei einer verschachtelten Navigation, also auch in die übergeordneten Elemente des aktiven?

@Chenook: Das kann verschiedene Gründe haben. Hast du einen Link zu deiner Seite? Welchen php-Code hast du wo eingefügt? Wie sieht dein html aus? Wie das css?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wie Hauptmenüpunkt immer als "active" markieren?

Eingetragen von DrupalFan (1646)
am 08.05.2007 - 22:01 Uhr

Was ich erreichen will:

Immer wenn man auf einen der Hauptmenüpunkte klickt, soll dieser durch "active" markiert werden, damit durch die entsprechende CSS-Anweisung der Menüpunkt "unterlegt" und somit hervorgehoben wird. Damit sieht man also, bei welchem der Hauptmenüpunkte man sich befindet!!!!!

Gibt es dafür eine Lösung?

Die Teillösung für die Startseite habe ich ja oben schon gepostet.

Jetzt habe ich noch folgedes Problem:
Klickt man auf einen Haupt-Menüpunkt, z. Bsp. "Forum", wird "Forum" als active hervorgehoben. Wenn ich dann aber auf ein Forum klicke (dieses öffne) oder weiter auf einen Forumbeitrag klicke, dann ist der Hauptmenüpunkt "Forum" nicht mehr "active", also nicht mehr marktiert, das soll er aber bleiben.

Das gleiche passiert bei "Blogs": Sobald ich auf einen Blogeintrag klicke, wird der Menüpunkt "Blogs" nicht mehr als active hervorgehoben.

Wie schaut eine Lösung aus, die immer funktioniert, egal wie tief in welche Ebene man reinklickt (Forum, Forumname, Forum-Beitrag, Forum).

Vielen Dank.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Dafür gibts schon ne

Eingetragen von elias (72)
am 08.05.2007 - 23:11 Uhr

Dafür gibts schon ne Lösung, ja.

Core-Dateien zu hacken ist aber keine besonders elegante Art. Dies kann zu Problemen bei Updates führen. Inhalte werden in Drupal im Normalfall über theme_whatever() ausgegeben. Diese Funktion lässt sich fürs jeweilige Template überschreiben. Ausführliche Infos dazu findest du unter http://drupal.org/node/11811

Unter includes/menu.inc findest du die Funktion, die die einzelnen li-Elemente des Menus generiert.

<?php
function theme_menu_item($mid, $children = '', $leaf = TRUE) {
  return
'<li class="'. ($leaf ? 'leaf' : ($children ? 'expanded' : 'collapsed')) .'">'. menu_item_link($mid) . $children ."</li>\n";
}
?>

Diese passen wir nun an unsere Bedürfnisse an. Füge dazu den folgenden Code in die template.php (falls diese Datei nicht existiert, erstelle sie) deines aktiven Themes ein:

<?php
/**
* überschreibt theme_menu_item() aus includes/menu.inc
*
* fügt zusätzlich eine class 'active' für alle aktiven menupunkte zum <li>-element
*/
function phptemplate_menu_item($mid, $children = '', $leaf = TRUE) {

 
$item = menu_get_item($mid); // hole den jeweiligen menupunkt

 
if ((drupal_get_normal_path($item['path']) == $_GET['q']) // pfad aktiv?
 
|| (drupal_is_front_page() && $item['path'] == '<front>') // oder sind wir auf der startseite?
 
|| menu_in_active_trail($mid)) { // oder sind wir irgendwo im aktiven pfad, also in einem übergeordneten element des gerade angewählten?
   
$active = ' active';
  } else {
   
$active = '';
  }

  return
'<li class="' . $active . ($leaf ? 'leaf' : ($children ? 'expanded' : 'collapsed')) .'">'. menu_item_link($mid) . $children ."</li>\n";
}
?>

Unter http://api.drupal.org/ findest du eine ausführliche Doku der Funktionen.

In deinem CSS kannst du nun alle aktiven Elemente folgendermassen ansprechen:

ul.menu li.active {
  /* deine formatierungen für die aktiven menuelemente */
}

  • Anmelden oder Registrieren um Kommentare zu schreiben

Guter Ansatz, bitte vervollständigen

Eingetragen von DrupalFan (1646)
am 09.05.2007 - 12:34 Uhr

Danke für den guten Ansatz.

Habe jetzt meine Teillösung in common.inc ausgebaut und diese Lösung eingebaut. Leider funktionert es nicht:

- wenn ich auf "Startseite" klicke, wird dieser Menüpunkt nicht als "active" gekennzeichnet. Mit meiner Lösung ging das, das war ja der Zweck meiner Teillösung.

- wenn ich auf Menüpunkte klicke, die in der Form "?q=node/11" verlinkt sind, funktionier es nicht!!!! Keine der Bedingungen ist dann erfültt, habe eine "echo" eingebaut, sehe das also eindeutig, hier wird nichts ausgegeben.

- wenn ich auf "Forum" oder "Blogs" klicke, funktioniert das zwar, aber sobald ich auf einen Forumeintrag oder Blogeintrag klicke, ist die Markierung weg.

Es hat sich also zum "Normalzustand" nichts verändert. Bin nicht draufgekommen, woran das liegt. Vielleicht kannst Du nochmal korrigieren.

Vielen Dank.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zusatz

Eingetragen von DrupalFan (1646)
am 09.05.2007 - 12:37 Uhr

Wo ist eigentlich genau das Problem?

Warum kann Drupal selbst das nicht richtig darstellen (aktive Menüpunkte immer(!) als "acitve" kennzeichnen, egal wo man sich befinden, egal ob man auf irgendeinen Forumbeitrag klickt oder noch tiefer). Das wäre dann doch ein Drupal-Fehler, den man melden sollte, oder?

Oder funktioniert das nur bei bestimmten und bei selbst erstellten Themes nicht? Aber dann sollte es doch schon Lösungen dafür geben, bei denen man abschauen könnte.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Eigentlich könnte man sowas

Eingetragen von elias (72)
am 09.05.2007 - 13:56 Uhr

Eigentlich könnte man sowas von einem CMS erwarten, da hast du Recht. Hier verhält sich Drupal mehr als mangelhaft. Mit Version 6 wird sich das aber zum Glück ändern.

Einen kleinen Fehler hatte mein Code tatsächlich. Hier die korrekte Version

<?php
/**
* überschreibt theme_menu_item() aus includes/menu.inc
*
* fügt zusätzlich eine class 'active' für alle aktiven menupunkte zum <li>-element
*/
function phptemplate_menu_item($mid, $children = '', $leaf = TRUE) {
 
$item = menu_get_item($mid); // hole den jeweiligen menupunkt
 
if ((drupal_get_normal_path($item['path']) == $_GET['q']) // pfad aktiv?
 
|| (drupal_is_front_page() && $item['path'] == '<front>') // oder sind wir auf der startseite?
 
|| menu_in_active_trail($mid)) { // oder sind wir irgendwo im aktiven pfad, also in einem übergeordneten element des gerade angewählten?
    #$active = ' active'; falsch. führt zu klassen wie z.b. 'activeexpanden' statt 'active expanded'
   
$active = 'active '; # so ists korrekt
 
} else {
   
$active = '';
  }
  return
'<li class="' . $active . ($leaf ? 'leaf' : ($children ? 'expanded' : 'collapsed')) .'">'. menu_item_link($mid) . $children .'</li>\n';
}
?>

Dieser Code funktioniert genau so wie du ihn gerne hättest. Allerdings, das habe ich völlig vergessen, greift er nur für ein normales Menu und nicht für die primary und secondary links. Die werden durch eine eigene Funktion generiert.
Ich mag dieses Primary- und Secondary-Links Konzept überhaupt nicht.
Du kannst nun entweder deine Links in ein normales Menu packen und der Code wird problemlos funktionieren oder du schaust, wie die Primary- und Secondary-Links ausgegeben werden und passt dann diese Funktion für dein Theme entsprechend dieser Vorlage hier an...

Nur um sicherzugehen: Du hast meinen Code schon in der template.php deines Themes eingebaut und nicht in der common.inc, oder?

  • Anmelden oder Registrieren um Kommentare zu schreiben

@elias -aktive links nicht sichtbar-

Eingetragen von Chenook (nicht überprüft) (0)
am 10.05.2007 - 01:28 Uhr

Sorry, komme erst jetzt zu einer Antwort. Ich mußte eine der Sites die es betrifft erst öffentlich stellen, um den Link hier rein zu posten.

Hast du einen Link zu deiner Seite?

der Link wäre www.last-minute-reise-tours.de

Welchen php-Code hast du wo eingefügt?

Den Code, der hier oben auf der Seite steht habe ich, nacheinander in template.php, page.tpl.php, node.tpl.php und block.tpl.php eingefügt und probiert was da passiert, in Bezug auf die erwünschten hervorgehobenen aktiven Links im Menü *g* - nix ist passiert- (Ich glaube es ist dringend nötig wenigstens PHP-Grundwissen zu erwerben)

Wie sieht dein html aus? Wie das css?
Meinst Du meine Kenntnisse oder die des Templates?

Ich bin derzeit dabei noch eine Site auf drupal um zu stellen. Dort habe ich mit einem anderen Template die selben Probleme. Sie ist aber noch nicht öffentlich. Es liegt wohl daran, dass wir die derzeit bestehenden URL´s der gesamten Site erhalten wollen. Solange ich noch die vom System vergebenen URL node/xx unverändert ließ war es ok. Nach der Änderung, keine Aktiven Links und die Menüs mit Unterpunkten klappen nicht mehr auf.

Kann ich den unterdessen weiter unten eingefügten PHP-Code bei meiner Site auch einfügen? Es hört sich nach einem ähnlichen Problem an.

greets
Chenook

  • Anmelden oder Registrieren um Kommentare zu schreiben

@Chenook: Du kannst meinen

Eingetragen von elias (72)
am 10.05.2007 - 10:30 Uhr

@Chenook: Du kannst meinen Code benutzen. Sollte für deine Zwecke perfekt passen.

@DrupalFan: Hast du den Code von CyberCore angesehen? Kommt deinem Ziel schon nahe. Einfügen musst du den Code in der page.tpl.php. Allerdings wird dieser Code z.B. den Menueintrag Blogs nicht hervorheben, wenn ein einzelner Beitrag angeklickt ist. Oder in einem verschachtelten Menu wird nur der jeweils aktive Punkt und nicht der aktive Pfad hervorgehoben. Diese Fälle werden in meinem Code durch menu_in_active_trail($mid) abgedeckt. Allerdings ist die Menuid im $primary_links Array nicht verfügbar.

Hier ein möglicher Ansatz, wie du das Ganze für die primary- und secondary-links erreichen kannst:
1. (template.php) Erklärung siehe meine vorherigen Posts...

<?php
/**
* überschreibt theme_menu_item() aus includes/menu.inc
*
* fügt zusätzlich eine class 'active' für alle aktiven menupunkte zum <li>-element
*/
function phptemplate_menu_item($mid, $children = '', $leaf = TRUE) {
 
$item = menu_get_item($mid); // hole den jeweiligen menupunkt
 
if ((drupal_get_normal_path($item['path']) == $_GET['q']) // pfad aktiv?
 
|| (drupal_is_front_page() && $item['path'] == '<front>') // oder sind wir auf der startseite?
 
|| menu_in_active_trail($mid)) { // oder sind wir irgendwo im aktiven pfad, also in einem übergeordneten element des gerade angewählten?
    #$active = ' active'; falsch. führt zu klassen wie z.b. 'activeexpanden' statt 'active expanded'
   
$active = 'active '; # so ists korrekt
 
} else {
   
$active = '';
  }
  return
'<li class="' . $active . ($leaf ? 'leaf' : ($children ? 'expanded' : 'collapsed')) .'">'. menu_item_link($mid) . $children .'</li>\n';
}
?>

2. (template.php) Mit dieser Funktion lassen sich phptemplate Variablen überschreiben. Je nach Theme mag hier schon etwas vorhanden sein, mein Beispiel basiert auf Garland. Wichtig sind die von mir hinzugefügten Zeilen, die die primary- und secondary-links variablen überschreiben.

<?php
function _phptemplate_variables($hook, $vars) {
  if (
$hook == 'page') {
    if (
$secondary = menu_secondary_local_tasks()) {
     
$output = '<span class="clear"></span>';
     
$output .= "<ul class=\"tabs secondary\">\n". $secondary ."</ul>\n";
     
$vars['tabs2'] = $output;
    }

   
// Hook into color.module
   
if (module_exists('color')) {
     
_color_page_alter($vars);
    }
   
   
$vars['primary_links'] = primary_secondary_links(variable_get('menu_primary_menu', 1)); # $primary_links überschreiben
   
$vars['secondary_links'] = primary_secondary_links(variable_get('menu_secondary_menu', 1), 'secondary_links'); # $secondary_links überschreiben
   
   
return $vars;
  }
  return array();

}
?>

3. (template.php) Nun noch die Funktion, die die primary- und secondary-Links über menu_tree() generiert, wodurch diese links gleich wie ein normales menu ausgegeben werden. dadurch greift die überschreibung von theme_menu_item() nun auch für primary- und secondary-links.

<?php
function primary_secondary_links($pid, $id='primary-links') {
  if (
$tree = menu_tree($pid)) {
    return
'<ul id="'.$id.'">'. $tree .'</ul>';
  }
}
?>

4. in page.tpl.php kannst du die primary links nun durch

<?php
print $primary_links;
?>
ausgeben. analog für die secondary links.

5. dein css muss jetzt natürlich noch angepasst werden ...

  • Anmelden oder Registrieren um Kommentare zu schreiben

was mir noch eingefallen

Eingetragen von elias (72)
am 10.05.2007 - 10:50 Uhr

was mir noch eingefallen ist: menu_tree gibt den gesamten baum (alle ebenen) zurück. für primary- und secondary-links ist wahrscheinlich aber nur jeweils eine ebene erwünscht.

hier eine quick and dirty lösung (ich habe einfach menu_tree() genommen und einige zeilen rausgelöscht):

<?php
function primary_secondary_links($pid, $id='primary-links') {
 
 
$menu = menu_get_menu();
 
$output = '';

  if (isset(
$menu['visible'][$pid])) {
    foreach (
$menu['visible'][$pid]['children'] as $mid) {
     
$output .= theme('menu_item', $mid);
    }
  }
 
  return
'<ul id="'.$id.'">'. $output .'</ul>';
}
?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

@ elias

Eingetragen von Chenook (nicht überprüft) (0)
am 16.05.2007 - 00:32 Uhr

Hallo,
danke für die Hilfe. Ich habe es nicht hin bekommen und wir lassen es erst mal so mit den Links. Von wegen der Up-dates sollen auch in den Kernkomponenten auch nichts geändert werden. Aber ich werde mich doch mal wenigstens in die Grundstruktur von PHP einarbeiten, dass es mir verständlicher wird.

greets

Chenook

  • Anmelden oder Registrieren um Kommentare zu schreiben

@Chenook

Eingetragen von elias (72)
am 16.05.2007 - 15:57 Uhr

Wo hast du denn den Code eingefügt? Wenn du ihn in der template.php deines Themes einfügst, änderst du nix an den Kernkompenenten. Eben aus diesem Grund werden Inhalte in Drupal ja über theme_whatever ausgegeben. Ich kann nur nochmals auf die theme function doku verweisen: http://drupal.org/node/11811

  • Anmelden oder Registrieren um Kommentare zu schreiben

Natürlich habe ich das in

Eingetragen von DrupalFan (1646)
am 23.05.2007 - 15:25 Uhr

Natürlich habe ich das in der template.php eingebaut.

Und heute nochmal, aber es funktioniert nicht!!!!

Das was ich will:
Vom Hauptmenü (primary) soll immer der aktuell gewählte Menüpunkt als "active" markiert bleiben, egal wie tief man irgendwelche Untermenüs oder im Forum oder im Blog usw. klickt.

So wie es aussieht, gibt es dafür KEINE Lösung. Schade.

Bitte wenn jemand doch eine Lösung hat, diese bitte kompakt posten, dann versuch ich es nochmal. Danke schon jetzt für die Hilfe.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Also bei mir klappts

Eingetragen von elias (72)
am 23.05.2007 - 18:59 Uhr

Also bei mir klappts wunderbar.

Hast du einen Link zu deiner Site?

Hier nochmals kompakt:
Kommt in template.php

<?php
/**
* überschreibt theme_menu_item() aus includes/menu.inc
*
* fügt zusätzlich eine class 'active' für alle aktiven menupunkte zum <li>-element
*/
function phptemplate_menu_item($mid, $children = '', $leaf = TRUE) {
 
$item = menu_get_item($mid); // hole den jeweiligen menupunkt
 
if ((drupal_get_normal_path($item['path']) == $_GET['q']) // pfad aktiv?
 
|| (drupal_is_front_page() && $item['path'] == '<front>') // oder sind wir auf der startseite?
 
|| menu_in_active_trail($mid)) { // oder sind wir irgendwo im aktiven pfad, also in einem übergeordneten element des gerade angewählten?
    #$active = ' active'; falsch. führt zu klassen wie z.b. 'activeexpanden' statt 'active expanded'
   
$active = 'active '; # so ists korrekt
 
} else {
   
$active = '';
  }
  return
'<li class="' . $active . ($leaf ? 'leaf' : ($children ? 'expanded' : 'collapsed')) .'">'. menu_item_link($mid) . $children .'</li>\n';
}

function
primary_secondary_links($pid, $id='primary-links') {
 
$menu = menu_get_menu();
 
$output = '';
  if (isset(
$menu['visible'][$pid])) {
    foreach (
$menu['visible'][$pid]['children'] as $mid) {
     
$output .= theme('menu_item', $mid);
    }
  }
  return
'<ul id="'.$id.'">'. $output .'</ul>';
}


function
_phptemplate_variables($hook, $vars) {
  if (
$hook == 'page') {
    if (
$secondary = menu_secondary_local_tasks()) {
     
$output = '<span class="clear"></span>';
     
$output .= "<ul class=\"tabs secondary\">\n". $secondary ."</ul>\n";
     
$vars['tabs2'] = $output;
    }
   
// Hook into color.module
   
if (module_exists('color')) {
     
_color_page_alter($vars);
    }
   
$vars['primary_links'] = primary_secondary_links(variable_get('menu_primary_menu', 1)); # $primary_links überschreiben
   
$vars['secondary_links'] = primary_secondary_links(variable_get('menu_secondary_menu', 1), 'secondary_links'); # $secondary_links überschreiben
   
return $vars;
  }
  return array();
}
?>

In der page.tpl.php werden die primary links neu so ausgegeben:

<?php
print $primary_links;
?>

Und diesen Code musst du aus der page.tpl.php löschen:

<?php
       
<?php if (isset($primary_links)) :
?>

<?php
print theme('links', $primary_links, array('class' => 'links primary-links'))
?>

<?php
endif;
?>

<?php
if (isset($secondary_links)) :
?>

<?php
print theme('links', $secondary_links, array('class' => 'links secondary-links'))
?>

<?php
endif;
?>

?>

Danach kannst du die aktiven Menupunkte per CSS stylen:

#primary-links li.active {}
#secondary-links li.active {}
.menu li.active{}

Erklärung siehe oben...

  • Anmelden oder Registrieren um Kommentare zu schreiben

@Chenook

Eingetragen von elias (72)
am 23.05.2007 - 19:06 Uhr

Habe gerade gesehen, dass deine Hauptnavigation mit primary links aufgebaut ist. In diesem Fall gilt für dich ebenfalls der Code aus meinem vorherigen Post.

  • Anmelden oder Registrieren um Kommentare zu schreiben

dieses neue modul könnte da

Eingetragen von hade (57)
am 30.05.2007 - 08:33 Uhr

dieses neue modul könnte da auch hilfreich sein: http://drupal.org/project/menutrails

  • Anmelden oder Registrieren um Kommentare zu schreiben

Modul "Menu Trails"

Eingetragen von DrupalFan (1646)
am 01.06.2007 - 12:19 Uhr

Danke für den Tipp.

Ganz habe ich noch nicht verstanden, was dieses Modul genau macht. Kannst Du es erklären?

Hat es jemand schon verwendet?
Danke.

  • Anmelden oder Registrieren um Kommentare zu schreiben

DrupalFan wrote: Ganz habe

Eingetragen von hade (57)
am 05.06.2007 - 19:07 Uhr
DrupalFan schrieb

Ganz habe ich noch nicht verstanden, was dieses Modul genau macht. Kannst Du es erklären?

Hat es jemand schon verwendet?

nicht wirklich, hatte nur die diskussion verfolgt, da ich das bei meinem theme, das noch nicht existiert, auch benötigen werde. allerdings noch mit einer dritten ebene. dafür scheint das wiederum neue sliced menu modul noch besser geeignet zu sein. die blocks müssten sich ja mit theme regions in den header integrieren und zB wie ein normales primary menu stylen lassen. melde mich sobald ich´s getestet hab. ;)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das Modul funktioniert

Eingetragen von unghander (37)
am 05.06.2007 - 22:15 Uhr

Puh... ich habe mich jetzt einige Stunden mit dem Thema beschäftigt, denn ich bin in manchen Sachen Perfektionist. Und die Navigation ist mir ein wichtiges Anliegen, damit sich die Nutzer zurecht finden.

Ich habe jetzt das Modul Menu Trails ausprobiert und es funktioniert (fast) perfekt. Aber von vorn:

Zum Downloaden muss man sich die 3 Dateien menutrails.info, menutrails.module und README.txt aus dem CSV Verzeichnis laden (zu finden unter "Browse the CVS repository"), denn es fehlt noch ein Download-Link auf der Projektseite.

Das Modul hochladen und aktivieren und schon erscheint unter "Einstellungen" ein Menüpunkt für das Modul.

Hier kann man jetzt angeben zu welchem Menüeintrag ein bestimmter Node-Typ gehört. Und es wird noch besser: Man kann sogar einzelne Kategorien zu Menüeinträgen zuordnen und sogar jedes einzelne Node beliebig zuordnen.

Damit das funktioniert muss zusätzlich ein kleiner Code-Schnippsel in die template.php Datei eingefügt werden. Diesen findet Ihr in der README.txt Datei.

So und jetzt das Manko: Leider unterstützt das Modul noch keine Views und wie es aussieht auch keine Taxonomie-Seite, denn diese sind ja eigentlich Views. Aber der Programmierer hat die bereits als "noch zu verwirklichen" in die Kommentare geschrieben. Man kann also hoffen.

FAZIT: Ich habe jetzt den Code von hier oben und zusätzlich das Modul im Einsatz. Der Code von hier ermöglicht es, dass die Startseite richtig aktiv angezeigt wird, wenn man auf Ihr ist und das Modul lässt auf einzelnen Artikelseiten den richtigen Hauptmenüpunkt aufläuchten.

-----
Christian geht denhartenweg.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Kannst du einem unbedarften

Eingetragen von Pfoto (25)
am 06.06.2007 - 09:56 Uhr

Kannst du einem unbedarften "Drupal-Dummi" genauer erklären, wo ich den Download finde?
Ich sehe nix mit "Browse the CSV repository... und noch nicht mal ein CSV-Verzeichnis (schäm...)

Ich muss nämlich eine 3-stufige Navigation realisieren, bei denen
natürlich die zuvor angewählten Elter-Menüpunkte aktiv bleiben sollen...

Hab' vielen Dank!

Pfoto

  • Anmelden oder Registrieren um Kommentare zu schreiben

CVS

Eingetragen von DrupalFan (1646)
am 06.06.2007 - 14:58 Uhr

Findest Du hier:

http://cvs.drupal.org/viewcvs/drupal/
und
http://cvs.drupal.org/viewcvs/drupal/contributions/modules/menutrails/

  • Anmelden oder Registrieren um Kommentare zu schreiben

Bei mir funktioniert menutrails nicht

Eingetragen von DrupalFan (1646)
am 06.06.2007 - 15:37 Uhr

Das klingt wirklich alles sehr schön und schaut auch gut aus, ich habe das Modul "menutrails" jetzt installiert und aktiviert, aber es funktioniert nicht!!! Es tut sich gar nichts.

Unter den Modul-Einstellungen kann ich bei
- Menu Trails By Node Type
den übergeordneten Menüpunkt angeben (z. Bsp. für alle Blog-Nodes), aber danach tut sich nichts, der Hauptmenüpunkt wird nicht(!) als "active" markiert, auch nicht im html-code, habe kontrolliert.

Der 2. Teil bei den Modul-Einstellungen
- Menu Trails By Category in Forum
funktioniert nicht, der vergisst sofort die Einstellung, die wird nie gespeichert. Scheint noch nicht programmiert zu sein.

Weitere Einstellmöglichkeiten habe ich keine.

Daher verstehe ich nicht, was Du mit

Man kann sogar einzelne Kategorien zu Menüeinträgen zuordnen und sogar jedes einzelne Node beliebig zuordnen.

meinst.

Hat jemand eine Ahnung, warum sich bei mir bei diesem Modul absolut nichts tut und wie ich da draufkommen kann, woran das liegt?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Viel zu kompliziert

Eingetragen von DrupalFan (1646)
am 06.06.2007 - 16:08 Uhr

Also hier nur mal eine Zwischenbemerkung:

Das ganze ist viel zu kompliziert. Normalerweise ist es doch nicht schwer, einen Menüpunkt als "aktiv" zu markieren, aber in Drupal braucht man dafür haufenweise Code, ein eigenes Modul mit hunterten Zeilen Code. Das bläht die Seite voll auf.

Bereits im Menü "menu" sind einige "trail-Funktionen" drin, die ähnliches machen, aber anscheinend nicht vollständig, um übergeordnete Menüpunkte zu markieren.

Jetzt braucht man noch ein Modul und dann geht es vielleicht noch immer nicht in allen Fällen ... Das ist doch viel viel zu kompliziert.

DAS PROBLEM:
Schaut auch doch mal www.drupal.org an: Die Ladezeit dieser Seite beträgt mehrerer Sekunden, bei speziellen Aktionen (einfache Suche oder auch anderes) wartet man fast eine Minute oder zumindest viele viele Sekunden.

Eine Seite, die viele Sekunden zum Laden braucht, ist leider unbrauchbar.

Wenn es keine Möglichkeit gibt, Drupal zu beschleunigen, sehe ich hier ein riesiges Problem, mit jedem neuen Modul wird das Ding langsamer und langsamer ... EWIG SCHADE um das tolle Drupal.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Modul geht gar nicht

Eingetragen von DrupalFan (1646)
am 06.06.2007 - 16:34 Uhr

Ich habe das ganze Modul unter die Lupe genommen, es geht überhaupt nicht:

Wenn ich in "menutrails.module" in der Funktion "menutrails_primary_links()" innerhalb der foreach-Schleife die Zeile
$active = TRUE;
fix einbaue (also oberhalb der Zeile, wo das $active verwendet wird und außerhalb der IF-Abfrage), dann funktionert es trotzdem nicht.

In diesem Fall müsste doch "jeder" Menüpunkt als "active" markiert werden, wird aber nicht, habe im html-code kontrolliert.

Was ist hier los?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hast du den entsprechenden

Eingetragen von elias (72)
am 06.06.2007 - 19:47 Uhr

Hast du den entsprechenden Code schon in deine template.php eingefügt?

Zitat:

Menu Trails module implements an "active trail" in primary/secondary links, setting class="active" on parents to the current menu item.

It also allows nodes to be categorized by type or taxonomy as falling "under" existing menu items, triggering the above functionality.

To implement:

1) Install the module
2) Place the code-snippet below into your template.php file. You may want to excerpt the two lines which set $vars['primary_links'] and $vars['secondary_links'] and place them into a pre-existing _phptemplate_variables() funtion wherever page variables are set.
3) Visit admin/settings/menutrails to classify nodes
4) Enjoy!

CODE SNIPPET:
This is an example _phptemplate_variables() implementation. It will keep first level primary links open when secondary links are selected.

You need to add this code (or something like it) to your template.php file for this module to do anything useful.

function _phptemplate_variables($hook, $vars = array()) {
switch ($hook) { // what function is active?
case 'page': // page is where menu comes into play
// set the primary links
$vars['primary_links'] = menutrails_primary_links(1);
// you may want to also override secondary_links
$vars['secondary_links'] = menutrails_primary_links(2);
break;
}
}

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ist eingebaut

Eingetragen von DrupalFan (1646)
am 06.06.2007 - 23:12 Uhr

Ja natürlich, ist eingebaut.

Hab sogar nachgewiesen:
Wenn ich das Modul "menutrails" unter Verwalten deaktiviert, geht nichts mehr, weil eben immer eine Fehlermeldung kommt, denn da gehört ja auch in der template.php die Funktion wieder entfernt.

Geht einfach nicht.

  • Anmelden oder Registrieren um Kommentare zu schreiben

DrupalFan wrote: Daher

Eingetragen von unghander (37)
am 08.06.2007 - 08:12 Uhr
DrupalFan schrieb

Daher verstehe ich nicht, was Du mit

Man kann sogar einzelne Kategorien zu Menüeinträgen zuordnen und sogar jedes einzelne Node beliebig zuordnen.

meinst.

Auf der Einstellungs-Seite des Menutrail Moduls kannst du die Menüzugehörigkeit auch nach Taxonomie Kategorien einstellen. Die Einstellung für einzelne Nodes findest du wenn du einen neuen Node anlegst oder einen bestehenden bearbeitest. Dort unter "Menüeinstellungen" findest du "Übergeordneter Menüpunkt:"

Achte auch darauf, dass du als übergeordneten Menüpunkt die Primary-Links nimmst und nicht wie ich erst fälschlicherweise die "Inhalte erstellen"-Typen ausgewählt hatte.

Als Beweis das es funktioniert kannst du auf meiner Seite denhartenweg mal auf "Blog" und anschließend auf einen Blogeintrag klicken. Wie du sehen wirst bleibt der Hauptmenüpunkt aktiv.

-----
Christian geht denhartenweg.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Woran könnte es liegen?

Eingetragen von DrupalFan (1646)
am 08.06.2007 - 11:55 Uhr

Ich hab das Taxonomie-Modul noch nicht wirklich in Verwendung, ist zwar aktiviert aber es sind keine Kategorien oder Stichwörter angelegt.

Natürlich habe ich auch die Primary-Links bei den menutrails-Einstellungen angegeben, habe danach aber auch die anderen Probiert als Gegenproble.

Woran könnte es liegen, dass menutrails bei mir nicht funktioniert? Oder wie könnte ich draufkommen?
Vielen Dank.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Auch Probleme

Eingetragen von unghander (37)
am 08.06.2007 - 16:44 Uhr

Es ist zum verzweifeln. Bei meiner einen Seite hat es mit den Menutrails wunderbar funktionert... jetzt wollte ich das bei einer anderen Drupalseite installieren und habe plötzlich auch massive Probleme. Einmal gab es hefftige Fehlermeldungen und das andere Mal funktionierte das Modul nicht (es wurde keine Klasse "active" darangehangen).

Ich werde mich heute oder morgen nochmal intensiv dransetzen und versuche das zu lösen.

@DrupalFan ich kann dich jetzt total verstehen, es ist schrecklich wenn etwas da funktioniert aber dort nicht.

-----
Christian geht denhartenweg.

-----
Christian geht denhartenweg.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ja, das ist wirklich nervig.

Eingetragen von DrupalFan (1646)
am 08.06.2007 - 20:54 Uhr

Ja, das ist wirklich nervig.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Noch eine Lösungmöglichkeit

Eingetragen von Petra (54)
am 11.06.2007 - 16:33 Uhr

Bei mir hat nicht alles funktioniert, hier meine Lösung:

Für die Startseite in den primary-links diese Funktion in die template.php reinspielen, bzw. eine anlegen, wenn keine vorhanden ist:

<?php
/**
* Implementation of theme_menu_links().
*
* Add active class to current primary-menu item links.
*/
function phptemplate_menu_links($links, $attributes = array()) {

  if (!
count($links)) {
    return
'';
  }
 
$level_tmp = explode('-', key($links));
 
$level = $level_tmp[0];
 
$output = "<ul class=\"links-$level ".$attributes['class']. "\">\n";
  foreach (
$links as $index => $link) {
   
$output .= '<li';
    if (
stristr($index, 'active')) {
     
$output .= ' class="active"';
    }
// frontpage AND current-link in menu is <front>
   
elseif((drupal_is_front_page()) && ($link['href']=='<front>')){
     
$link['attributes']['class'] = 'active';//add class active to <li
     
$output .= ' class="active"';//add class active to <a
   
}
   
$output .= ">". l($link['title'], $link['href'], $link['attributes'], $link['query'], $link['fragment']) ."</li>\n";
  }
 
$output .= '</ul>';

  return
$output;
}
?>

In der page.tpl.php die primary- und secondary-links entsprechend anpassen, bspw. im zen-theme :

<?php print theme('menu_links', $primary_links); ?>
<?php print theme('menu_links', $secondary_links); ?>

- oder in garland und barlow.:

<?php print theme('menu_links', $primary_links, array('class' => 'links primary_menu')) ?>
<?php print theme('menu_links', $secondary_links, array('class' => 'links secondary_menu')) ?>

Um einen Startseiten-link in anderen Menüs active zu machen folgende diese Funktion in die template.php reinspielen, bzw. eine anlegen, wenn keine vorhanden ist: (http://drupal.org/node/87902)

<?php
/**
* Add frontpage 'active' state handling to menu links
* and section 'active' state handling when child is active
* and menu-[title] as css id
*
* modified from code originally posted at
* rogerlopez.net/handbook/primary_menu_tweaks
*
*/
function phptemplate_menu_item_link($item, $link_item) {
  static
$menu;
  if (!isset(
$menu)) {
   
$menu = menu_get_menu();
  }
 
$mid = $menu['path index'][$link_item['path']];
 
$front = variable_get('site_frontpage','node');
 
$attribs = isset($item['description']) ? array('title' => $item['description']) : array();
 
$attribs['id'] = 'menu-'. str_replace(' ', '-', strtolower($item['title']));
  if(((
$link_item['path']=='<front>') && ($front==$_GET['q'])) ||
    (
menu_in_active_trail($mid))){
 
$attribs['class'] = 'active';
  }
  return
l($item['title'], $link_item['path'], $attribs);
}
?>

Funktioniert für <front> in anderen Menüs. Funktioniert in garland, barlow, nonzero und zen (teilweise muß das css angepaßt werden - falls gewünscht, kann ich das auch posten).

  • Anmelden oder Registrieren um Kommentare zu schreiben

Funktioniert nicht

Eingetragen von DrupalFan (1646)
am 13.06.2007 - 14:13 Uhr

Leider funktioniert auch diese Version NICHT!!!

Warum werden ständig Sachen gepostet, die nicht funktoinieren? Drupal kann ja nicht so schlecht programmiert sein, dass es bei einem funktoniert und beim anderen nicht mehr.

Aber liebe Petra auch auf Deiner Seite funktioniert es nicht, klick doch mal auf einen Untermenüpunkt, dann ist die Farbe schon wieder weg. Bei Dir selbst funktioniert es anscheinend auch nur teilweise!!!!

Wie sieht denn nun die wirkliche Lösung für dieses einfache Problem aus?
Vielen Dank.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Aktiver Menüpunkt

Eingetragen von CyberCore (139)
am 15.06.2007 - 17:37 Uhr

..ich werf dann auch noch etwas in die runde, was bei mir wunderbar funktioniert:

in meiner template.php steht drin (erster Teil ist fast wie der von Petra, leicht modifiziert)

function phptemplate_menu_item_link($item, $link_item) {
  static $menu;
  if (!isset($menu)) {
    $menu = menu_get_menu();
  }
  $mid = $menu['path index'][$link_item['path']];
  $front = variable_get('site_frontpage','node');
  $attribs = isset($item['description']) ? array('title' => $item['description']) : array();
  $attribs['id'] = 'menu-'. str_replace(' ', '-', strtolower($item['title']));
  if((($link_item['path']=='<front>') && ($front==$_GET['q'])) || (menu_in_active_trail($mid))){
  $attribs['class'] = 'active';
  }
  return THEME_l($item['title'], $link_item['path'], $attribs);
}

function THEME_l($text, $path, $attributes = array(), $query = NULL, $fragment = NULL, $absolute = FALSE, $html = FALSE) {

if(drupal_get_path_alias($_GET['q']).'/' == $path){
$attributes['class'] = 'active';
}elseif($_GET['q'] == $path){
$attributes['class'] = 'active';
}elseif($_GET['q'] == 'node' AND $path == ''){
$attributes['class'] = 'active';
}elseif($attributes['class'] == "" AND $path != ""){
if(strstr(drupal_get_path_alias($_GET['q']).'/',$path)){
$attributes['class'] = '"active';
}
}
else{
$attributes['class'] = 'active';
}

  return '<a href="'. check_url(url($path, $query, $fragment, $absolute)) .'"'. drupal_attributes($attributes) .'>'. ($html ? $text : check_plain($text)) .'</a>';
}

Habe damit eine Seite aufgezogen und bei mir klappt es mit der richtigen Verlinkung. Aber kann sein, dass es bei Euch nicht funktioniert. Wäre schön, wenn :-)

Als Deklaration der aktiven CSSClass hab ich 'active' gewählt.

Gruß Andreas

edit: Bei mir liegen die Seiten mit URL Alias in Drupal, somit lasse ich den Pfad auslesen und mit dem Link vergleichen. Kann im Moment nicht sagen, ob es auch ohne URL Aliase funktioniert.

----------------------------------------
Browser Automatisierung / SEO On- und Offpage - http://www.cybercore.de

  • Anmelden oder Registrieren um Kommentare zu schreiben

Nur primary links!

Eingetragen von DrupalFan (1646)
am 16.06.2007 - 13:06 Uhr

Danke!!!

Habe das genau getestest, aber hier werden doch alle Links durch die Funktion "THEME_l" geschickt. Wozu???? Es soll doch nur bei den Primary-Links ein "active" hinzugefügt werden, wenn eine dem Menüpunkt untergeordnete Seit angewählt wurde.

Die Secondary-Links könnte man noch hinzunehmen, ist aber im ersten Schritt gar nicht so wichtig.

Also: Primary Links mit "class = active" versehen, wenn eine untergeordneter Seite angewählt ist.

Z. Bsp: "Blogs" ist der Menüpunkt unter "Primary Links" (also im Hauptmenü). Nun wird ein beliebiger "Blogeintrag" oder die Seite "Blogs von user xxxx" aufgerufen, in all diesen Fällen soll der Hauptmenüpunkt "Blogs" mit "acitve" markiert sein, damit dann über die css-Datei dieser Menüunkt farblich hervorgehoben werden kann (was ja schon eingebaut ist, weil wenn man direkt auf "Blogs" klickt, ist die Hervorhebung ja korrekt, nur bei Unterseiten fehlt die Markierung mit "active".).

Also keinesfalls irgendwie alle Drupallinks durch irgendwelche Funktionen schicken, damit dann Drupal wieder langsamer wird, sondern ganz gezielt nur die primary links mit "active" versetzen.

Vielleicht hat jetzt noch jemand eine Idee. Vielen Dank.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ewig ungelöst? Wo sind die Programmierer?

Eingetragen von DrupalFan (1646)
am 23.07.2007 - 14:25 Uhr

Seit Mitte April ist nun dieses Problem bekannt und bis heute gibt es keine Lösung. Jede Firma, die einen Kunden so lange links liegen lassen würde, hätte bald keine Kunden mehr.

Ich verstehen nicht, warum sich die Programmierer nicht einfach hinsetzen können, um dieses Problem sofort zu lösen.

Den aktiven Menüpunkt immer anzuzeigen, auch wenn man in tiefere Ebenen geklickt hat, das braucht doch fast jeder, es ist also ein Problem, das fast jeder gerne gelöst haben möchte, trotzdem passiert nichts. Das verstehe ich nicht.

Das Modul "Menu Trails" habe ich getestet und dann bei drupal.org gepostet, dass es nicht funktioniert. KEINE ANTWORT. Das kann irgendwie nicht wahr sein.

Es müssen wohl alle übersehen haben, denn es kann einfach nicht sein, dass so ein wichtiges Problem einfach liegen gelassen wird. Normalerweise muss man das innerhalb von 2-3 Tagen lösen und möglichst sofort posten, dass man an der Sache nun dran ist. So läuft das halt normalerweise ab. Aber hier scheint alles anders zu sein, bei drupal.org ist der Fehler bekannt, aber es TUT SICH TROTZDEM NICHTS!!!!

Daher meine Fragen:
- Wann wird es endlich eine Lösung für den "aktiven Menüpunkt" geben? Es sollte möglichst in wenigen Tagen soweit sein.
- Warum funktioniert das Modul "Menu Trails" absolut nicht? Warum kann niemand von drupalcenter.de einfach die Programmierer dieses Moduls ausfindich machen und ihnen oder ihm eine persönliche Mail schicken? Das Problem ist doch wirklich vordringlichst!!!

Vielen Dank an alle, die zu einer Lösung beitragen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wo auf drupal.org wird der

Eingetragen von pebosi (2645)
am 23.07.2007 - 14:35 Uhr

Wo auf drupal.org wird der "Fehler" denn diskutiert? Weiß nicht wie es bei Anderen ist, aber ich glaube nicht das sich darüber ein Besucher deiner Seite so Gedanken macht wie du hier, eher wird es wohl keinem auffallen wenn irgendwo ein Link nicht als aktiv gekennzeichnet ist...

Hast du denn mal bei dem MenuTrail Modul die Funktion aus der Readme Datei in deine template.php gepackt?

gruß pebosi

gruß pebosi
--
https://pebosi.net

  • Anmelden oder Registrieren um Kommentare zu schreiben

M.m. ist die Problemlösung

Eingetragen von bv (3924)
am 23.07.2007 - 14:46 Uhr

M.m. ist die Problemlösung oben ausreichend beschrieben. Ich habe so es ähnlich bereits bei Kunden sehr zufriedenstellend umgesetzt.

DrupalFan schrieb

Wann wird es endlich eine Lösung für den "aktiven Menüpunkt" geben?

Woher soll das hier jemand wissen?

DrupalFan schrieb

Es sollte möglichst in wenigen Tagen soweit sein.

Ist das eine Drohung? Du bist hier doch nicht beim Data-Becker Homepage Baukasten, sondern bei einer Open Source-Software.

DrupalFan schrieb

Warum kann niemand von drupalcenter.de einfach die Programmierer dieses Moduls ausfindich machen und ihnen oder ihm eine persönliche Mail schicken?

Wieso machst Du das nicht? Und worin sollte es sich denn unterscheiden, wenn wir das machen?

DrupalFan schrieb

Das Problem ist doch wirklich vordringlichst!!!

Mich persönlich interessiert das Modul kein Stück. Es gibt für dieses Problem div. Lösungen. S.o.

--
bv - drupalcenter.de

  • Anmelden oder Registrieren um Kommentare zu schreiben

Schön gesprochen

Eingetragen von sanduhrs (1274)
am 23.07.2007 - 15:12 Uhr

Schön gesprochen ;)

--
sanduhrs - drupalcenter
--------------------------------
Stefan Auditor
http://erdfisch.de

--
sanduhrs · Stefan Auditor · Drupalcenter
http://erdfisch.de · http://drupal.org/user/28074 · http://association.drupal.org/user/646

  • Anmelden oder Registrieren um Kommentare zu schreiben

bv wrote: M.m. ist die

Eingetragen von DrupalFan (1646)
am 23.07.2007 - 16:07 Uhr
bv schrieb

M.m. ist die Problemlösung oben ausreichend beschrieben. Ich habe so es ähnlich bereits bei Kunden sehr zufriedenstellend umgesetzt.

Welche Lösung von oben meinst Du genau?
Ich habe alles, was hier diskutiert wurde ausgiebigst getestet und auch großteils hier kommentiert, keine Lösung hat funktioniert.

Lediglich ein kleiner Teil des Problems, nämlich dass auf der Startseite der Menüpunkt "Startseite" (oder anderer Text) als markiert erscheint, ist gelöst, dafür wurden oben mehr als eine Löung gepostet, eine davon stammt von mir selbst, diese habe ich auch im Einsatz.

Dass überall der richtige Menüpunkt als "aktiv" markiert bleibt, oder zumindest bei allen Blogs und bei allen Foreneinträgen, das wär ja schon ein Hit, ist bei jetzt ungelöst, habe wirklich alles versucht und ausgiebig gestest und auch im Code Versuche gestartet, ohne Erfolg.

Sag mir daher bitte welche Lösung bei Dir funktioniert.

bv schrieb

Woher soll das hier jemand wissen?
Ist das eine Drohung? Du bist hier doch nicht beim Data-Becker Homepage Baukasten, sondern bei einer Open Source-Software.

Ach geh, darum geht es doch gar nicht.
Es geht doch darum, dass auch ein Open Source Software irgendwie eine Qualität möglich sein muss, wie auch immer das organisiert ist. Ein so wichtiges Problem sollte auf jeden Fall rasch gelöst werden und statt hier einen Streitversuch zu starten, sollte jeder mithelfen und das persönliche Empfinden weglassen.

Wenn ich hier diese Zeilen etwas kritisch geschrieben habe, dann nur deshalb, damit es zu einer Lösung kommt. Niemand ist damit persönlich gemeint oder sollte sich persönlich betroffen fühlen, daher werde ich auf solche persönlichen Sätze gar nicht mehr eingehen.

Es geht lediglich um die Sache selbst und sonst um nichts. Eine Lösung ist wichtig, weil viele viele diese Lösung gebrauchen können.

bv schrieb

Wieso machst Du das nicht? Und worin sollte es sich denn unterscheiden, wenn wir das machen?

Ich mache, alles was ich kann. Gib mir einen Tipp. Ich mach das gerne sogar. Sag mir, wie ich es machen soll, nenne mir die Emailadresse des Programmierers oder wie ich hier zum Ziel komme. Du kennst Dich damit sicher besser aus, daher ist jeder Tipp willkommen.

bv schrieb

Mich persönlich interessiert das Modul kein Stück. Es gibt für dieses Problem div. Lösungen. S.o.

Wie bereits geschrieben, gibt es keine Lösung dafür. Natürlich interessiert es Dich auch, Du bist Teil dieser Community. Dass die Hauptmenüpunkte richtig angezeigt werden, interessiert jeden, niemand wird eine Seite online stellen, wo dieses Problem ungelöst ist.

Nenne mir die genau Lösung, falls Du eine hast, ich werde das sofort ausgiebigst testen und dann hier berichten, es ist für viele interessant. Bitte genau posten, wie die Lösung aussehen könnte.

ICH BITTE wirklich alle, hier zu einer Lösung beizutragen und NICHT auf eine persönliche Diskussion einzugehen. Es geht nicht um Persönliches, es geht absolut nur um die Sache, es geht darum, eine Lösung zu finden, die funktioniert.

Vielen Dank.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Natürlich alles eingebaut

Eingetragen von DrupalFan (1646)
am 23.07.2007 - 16:11 Uhr
pebosi schrieb

Hast du denn mal bei dem MenuTrail Modul die Funktion aus der Readme Datei in deine template.php gepackt?

Natürlich, alles eingebaut und berücksichtigt.
Welche Lösung hast Du denn im Einsatz? MenuTrails? Andere? Gar keine "aktiv"ierung der Menüpunkte? Und warum hast Du sie nicht als "aktiv" markiert, obwohl es die Standard-Themes doch eingebaut haben?

  • Anmelden oder Registrieren um Kommentare zu schreiben

@ sanduhrs

Eingetragen von DrupalFan (1646)
am 23.07.2007 - 16:25 Uhr

@ sanduhrs:

Welche Lösung hast Du im Einsatz?

  • Anmelden oder Registrieren um Kommentare zu schreiben

@ pebosi

Eingetragen von DrupalFan (1646)
am 23.07.2007 - 16:50 Uhr

@ pebosi:

Welche Lösung hast Du im Einsatz?
Wie hast Du es geschafft, dass der aktive Menüpunkt immer angezeigt wird, z. Bsp. "Forum" immer als aktiv markiert wird, wenn man sich irgendwo im Forum bewegt, also Forumbeiträge liest, usw.

Vielen Dank.

  • Anmelden oder Registrieren um Kommentare zu schreiben

gern: in der

Eingetragen von willi1 (246)
am 16.12.2007 - 15:46 Uhr

gern: in der common.inc

function l($text, $path, $attributes = array(), $query = NULL, $fragment = NULL, $absolute = FALSE, $html = FALSE) {
    if (($path == $_GET['q']) || (($path == "<front>") && ($_GET['q']=='node'))) {
    if (isset($attributes['class'])) {
      $attributes['class'] .= ' active';
    }
    else {
      $attributes['class'] = 'active';
    }
  }
  return '<a href="'. check_url(url($path, $query, $fragment, $absolute)) .'"'. drupal_attributes($attributes) .'>'. ($html ? $text : check_plain($text)) .'</a>';
}

Es ist nur die Zeile

if (($path == $_GET['q']) || (($path == "") && ($_GET['q']=='node'))) {

einzufügen!!!

lg
willi1

  • Anmelden oder Registrieren um Kommentare zu schreiben

elias schrieb Dafür gibts

Eingetragen von vistree (238)
am 09.01.2008 - 15:34 Uhr
elias schrieb

Dafür gibts schon ne Lösung, ja.

In deinem CSS kannst du nun alle aktiven Elemente folgendermassen ansprechen:

ul.menu li.active {
  /* deine formatierungen für die aktiven menuelemente */
}

Hallo Elias,
danke für deine Infos. Die waren auch für mich sehr hilfreich.
Nun habe ich hier noch eine Frage an dich:
Ich möchte gerne den AKTIVEN Hauptmenüpunkt mit einem Rahmen umgeben - und nur diesen.
Der aktive Untermenüpunkt soll einfach nur eine besondere Schriftfarbe bekommen.
Wenn ich das nun so mache:

ul.menu li..active {
  color: #2677e3;
  background-image: url(images/leaf_main.gif);
  background-position: -0px 4px;
  background-repeat: no-repeat;
  width: 130px;
  border-bottom: 1px solid #fff;
  border-top: 1px solid #fff;
  }

ul.menu li li.active {
display: block;
color: #000000;
background: none;
border: none;
}

dann ist der untere Rahmen unter dem gesamten Block des gewählten Hauptpunktes (also unter dessen letzten Unterpunkt).
Wie muss ich nun den aktiven Hauptmenüpunkt ansprechen, so dass dieser auch bei gewähltem Untermenüpunkt noch die gewünschte Formatierung hat?

Gruß & Danke
Kai

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • DDEV: Website vom lokalen Server auf Webspace übertragen
  • MariaDB 10.6
  • Wie kann man die Ansicht der Benutzer erweitern?
  • (Gelöst) SIMPLE XML SITEMAP liefert die Sitemap für das Menü nicht aus
  • Entity Reference - Title Felder werden als Link angezeigt
  • PHP 8.1 - Deprecated function: rtrim()
  • Preloader / Spnner entfernen Menu Link Modal-Modul
  • Schriftgröße standard einstellen
  • Drupal Website gestalten
  • Tokens werden in Viev als Link angezeigt
  • [bug entdeckt & workaround gefunden] benutzerdefinierte Felder vom Userprofil tauchen ungefragt auch in den Forumtopics auf...
  • [gelöst] Mass contact Empfängerliste nach Taxonomy Term statt Rolle
Weiter

Neue Kommentare

  • Hallo Werner, super, vielen
    vor 12 Minuten 50 Sekunden
  • Du mußt die Struktur
    vor 6 Stunden 59 Minuten
  • Ergebnis des upgrade
    vor 1 Tag 25 Minuten
  • Danke, funktioniert einwandfrei!
    vor 1 Tag 1 Stunde
  • Bei Drupal 7 war diese Seite
    vor 1 Tag 2 Stunden
  • Es ist ein Paragraph
    vor 2 Tagen 4 Stunden
  • Danke fürs Feedback. Gut dass
    vor 4 Tagen 20 Stunden
  • Patch angewandt
    vor 4 Tagen 23 Stunden
  • core_version_requirement: ^8
    vor 1 Woche 1 Stunde
  • core_version_requirement: ^8
    vor 1 Woche 1 Stunde

Statistik

Beiträge im Forum: 247875
Registrierte User: 19595

Neue User:

  • Davidsnins
  • kudes
  • Tkakah

» Alle User anzeigen

User nach Punkten sortiert:
wla9215
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3845
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 25 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association