Menülinks abkürzen und anderer Style

am 20.06.2012 - 09:26 Uhr in
Hallo,
ich habe mit Drupal eine Seite erstellt.
Hier können von den Benutzern auch Menüpunkte angelegt werden.
Jetzt kann es ja passieren, dass ein Benutzer einen Menüpunkt anlegt der die Navigation "sprengt" d.h. einen Punkt mit einem sehr langen Namen anlegt.
z.B. "Dies ist ein sehr langer Name für ein Menüpunkt".
Mein Frage ist, ob ich diesen kürzen kann und gleichzeitig auch einen neuen CSS-Stil für einen längeren Menüpunkt generieren kann?
z.B. class="menukurz" für normallangen Namen und class="menulang" für einen langen Namen.
Evtl. kann mir jemand von Euch einen Denkanstoss geben.
Viele Grüße
Paul
- Anmelden oder Registrieren um Kommentare zu schreiben
ich kann mir vorstellen, dass
am 20.06.2012 - 10:03 Uhr
ich kann mir vorstellen, dass ich das in der "menu.inc" direkt anpassen kann oder?
Das solltest Du unbedingt
am 20.06.2012 - 10:37 Uhr
Das solltest Du unbedingt lassen "Don't hack the core"! Der nächste Drupal-Update kommt bestimmt und dann sind Deine Änderungen wieder weg. Da gibt es andere Wege. Du könntest das etwa mittels theme_menu_link in der Datei template.php in Deinem Theme erreichen. Damit bist Du unabhängig von der Drupal-Version.
Beste Grüße
Werner
super, vielen dank! das hat
am 20.06.2012 - 12:31 Uhr
super, vielen dank! das hat mir weitergeholfen. :)
hier mein code welchen ich in die template.php eingetragen habe:
<?php
/**
* längere Links mit CSS anpassen
*/
function bm_menu_link(array $variables) {
$element = $variables['element'];
$sub_menu = '';
$element['#attributes']['class'][] = 'menu-' . $element['#original_link']['mlid'];
if ($element['#below']) {
$sub_menu = drupal_render($element['#below']);
}
if (strlen($element['#title']) > 35):
$element['#attributes']['class'][] = 'menulang';
endif;
$output = l($element['#title'], $element['#href'], $element['#localized_options']);
return '<li' . drupal_attributes($element['#attributes']) . '>' . $output . $sub_menu . "</li>\n";
}
?>