Funktionen nur für bestimmten Block überschreiben
Eingetragen von shihan (3)
am 16.11.2007 - 19:07 Uhr in
am 16.11.2007 - 19:07 Uhr in
Hi,
ich habe mittlerweile verstanden wie man Funktionen in Drupal überschreibt.
Speziell geht es mir um die Menü-Funktion, die ich überschrieben habe.
Diese soll allerdings nur für ein Menü überschrieben sein, während sie für das andere Menü (z.B. Admin-Menü) ganz normal angezeigt werden soll, wie sie im Menü-Modul definiert ist.
Ist das möglich? Wenn ja, wie mache ich sowas?
Danke für die Hilfe!
Grüße
Dominik
- Anmelden oder Registrieren um Kommentare zu schreiben
Poste mal welche Funktion du
am 19.11.2007 - 09:18 Uhr
Poste mal welche Funktion du mit was überschrieben hast...
gruß pebosi
gruß pebosi
--
https://pebosi.net
<?php /** * Generate the
am 20.11.2007 - 12:58 Uhr
<?php
/**
* Generate the HTML output for a single menu item.
*
* @param $mid
* The menu id of the item.
* @param $children
* A string containing any rendered child items of this menu.
* @param $leaf
* A boolean indicating whether this menu item is a leaf.
*
* @ingroup themeable
*/
function phptemplate_menu_item($mid, $children = '', $leaf = TRUE) {
if ($leaf) {
return '<li><span class="sbh">. </span>'.menu_item_link($mid).$children.'</li>';
} else {
$item = menu_item_link($mid,false);
$item_link = menu_get_item($mid);
$item_link = l('<img src="/themes/segeltraum/images/transparent.gif" alt="" />',
$item_link['path'],
!empty($item['description']) ? array('title' => $item['description'], 'id' => strtolower($item['title'])) : array('id' => strtolower($item['title'])),
isset($item['query']) ? $item['query'] : NULL,
null,
false,
true
);
return '<li>'.$item_link.$children.'</li>';
}
return "";
//}
//return '<li class="'. ($leaf ? 'leaf' : ($children ? 'expanded' : 'collapsed')) .'">'. menu_item_link($mid) . $children ."</li>\n";
}
/**
* Generate the HTML for a menu tree.
*
* @param $pid
* The parent id of the menu.
*
* @ingroup themeable
*/
function phptemplate_menu_tree($pid = 1) {
if ($tree = menu_tree($pid)) {
return "\n<ul>\n". $tree ."\n</ul>\n";
}
}
?>
Das ist der relevante Code... dieser soll aber nur für ein Menü gelten, nämlich das Hauptmenü. Das Adminmenü soll unbeeinflusst bleiben.
Daher würde ich gerne die Funktion abhängig vom Menü überschreiben bzw eine Abhängigkeit in der Funktion einbauen.
Leider habe ich keine Möglichkeit gefunden, um festzustellen, wann ich in welchem Menü bin.
Grüße
Dominik
$mid abfragen als Erstes in
am 20.11.2007 - 13:08 Uhr
$mid abfragen als Erstes in der Schleife sollte Dir doch erlauben, auf ein einzelnes Menue zuzugreifen.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
danke für die Antwort.
am 20.11.2007 - 14:18 Uhr
danke für die Antwort.
Aber $mid ist doch nur ein Punkt des Menüs und gibt nicht an welches Menü...
und welche Schleife meinst du?
Sorry, war ein Denkfehler
am 20.11.2007 - 14:48 Uhr
Sorry, war ein Denkfehler von mir. Mit lesen kommt man weiter.
* Generate the HTML output for a single menu item.
Wo steckt die Original Funktion die Du ueberschreibst? Will mir die Datei mal ansehen. menu.inc oder so?
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.