mlid

am 02.02.2010 - 08:55 Uhr in
Guten Tag
Wie finde ich per PHP heraus, welcher Navigationspunkt gerade aktiv ist?
Ich muss wissen welche "mlid" gerade aktiv ist.
Freundliche Grüsse
Christian Egli
- Anmelden oder Registrieren um Kommentare zu schreiben
menu_get_active_trail()
am 02.02.2010 - 09:10 Uhr
Mit der Funktion menu_get_active_trail bekommst Du die Menüpunkte des aktuellen Pfades.
Somit bekommt man den aktvien Menüpunkt mittels
<?php
function _get_active_item() {
$trail = menu_get_active_trail();
return end($item);
}
?>
hth,
Stefan
--
Sei nett zu Deinem Themer!
hmmmn... Danke für den
am 02.02.2010 - 09:58 Uhr
hmmmn...
Danke für den Code, jetzt habe ich aber ein weiteres Problem:
$trail['mlid']; hat den Wert NULL.
Sorry für die dummen Fragen^^
//EDIT
hab übersehen das es ein mehrdimensionales Array ist.
$trail[2]['mlid'];
funktioniert perfekt. besten dank für die hilfe
Grüsse
Array
am 02.02.2010 - 09:59 Uhr
$trail['mlid']; hat den Wert NULL.
Wie ich bereits schrieb, enthält Trail ein Array mit *allen* Menüpunkten des aktuellen Menüpfades.
Wie ich weiterhin schrieb, holt man sich den aktuellen Menüpunkt dann daraus mit
<?php
end($trail);
?>
Also:
$trail = menu_get_active_trail();
drupal_set_message('<pre>' . var_export($trail, 1) . '</pre>');
$active_item = end($trail);
drupal_set_message('<pre>' . var_export($active_item, 1) . '</pre>');
print $active_item['mlid'];
hth,
Stefan
--
Sei nett zu Deinem Themer!
oder so: $trail =
am 02.02.2010 - 10:12 Uhr
oder so:
$trail = menu_get_active_trail();
echo $trail[2]['mlid'];
somit hole ich mir die mlid des übergeordneten Menüeintrags, was auch mein Ziel war.
Array
am 02.02.2010 - 11:22 Uhr
somit hole ich mir die mlid des übergeordneten Menüeintrags, was auch mein Ziel war.
Jedoch nur, wenn der Pfad genau die von Dir angenommene Anzahl an Einträge hat.
Stefan
--
Sei nett zu Deinem Themer!
Welchen Pfad meinst du?
am 02.02.2010 - 11:29 Uhr
Welchen Pfad meinst du? Verstehe ich nicht ganz...
Menüpfad
am 02.02.2010 - 11:33 Uhr
Welchen Pfad meinst du?
Den aktuellen Menüpfad ("active trail").
Und der ist ja nicht immer gleich lang. Dementsprechend kann
$active_trail
je nach Seite eine unterschiedliche Anzahl an Einträgen enthalten.hth,
Stefan
--
Sei nett zu Deinem Themer!
Glaube dies verhindere ich
am 02.02.2010 - 11:42 Uhr
Glaube dies verhindere ich dadurch, dass die Navigationspunkte die ich von der Datenbank hole mit der mlid gar nicht angezeigt werden.
Ich erstelle diese nur im Admincenter aber deaktiviere Sie. Dannach hole ich Sie so von der Datenbank und gebe Sie aus:
<?php
function contentNavi(){
$trail = menu_get_active_trail();
$filter = $trail[2]['mlid'];
$sql2 = "SELECT link_title, plid FROM {menu_links} WHERE plid = ".$filter." ORDER BY link_title DESC";
$results2 = db_query($sql2);
while ($navi = db_fetch_array($results2)) {
echo $navi['link_title'];
if ($i != count($navi)) { echo '<span style="color: red;"> | </span>'; }
$i++;
}
}
?>
Diese erscheinen nirgendwo in der Navigation sondern werden nur als Inhalt ausgegeben, dazu noch ein Screenshot:
http://christian-egli.ch/screen2.JPG
Pauken | Handtrommeln | Doppelfelltrommeln sind Untereinträge von dem Navigationspunkt "Schlaginstrumente" und werden in der Navigation nicht angezeigt.