Links in Untermenü mit HTML-Tags erweitern
Eingetragen von shoakeyi (4)
am 13.02.2013 - 13:36 Uhr in
am 13.02.2013 - 13:36 Uhr in
Hallo Forum,
habe jetzt seit ein paar Wochen mit Drupal 7 angefangen und bin jetzt dabei ein HTML-Template in Drupal einzubauen. Dabei bin ich auf eine Stelle gestoßen, wo ich momentan nicht weiterkomme. Das Untermenü in meinem Template sieht in etwa so aus:
<ul class="subnavi">
<li class="xyz">
<a href="link-xyz">
<em>
<b>Linktext</b>
</em>
</a>
</li>
</ul>
Um was es mir jetzt geht, sind die im <a>-Tag eingebetteten <em> und <b>, die für eine bestimmte Formatierung benötigt werden.
Was ich bisher gemacht habe, ist die Datei template.php zu erstellen und da drin die Funktion theme_menu_link zu verwenden, was auch funktioniert.
Dort drin wird der Link aber durch folgenden Aufruf erstellt:
$output = l($element['#title'], $element['#href'], $element['#localized_options']);
Und danach ist das <a>-Tag komplett fertig und ich kann da nichts mehr reinbauen. Könnte jetzt z.B. mit explode (o.ä.) den String wieder zerhacken und neu zusammenbauen, aber das kommt mir arg unelegant vor. Meine Frage ist, wie man das 'richtig' in Drupal macht.
Danke im Voraus
PS: Wieso gibt's hier im Forum kein PlainText?
- Anmelden oder Registrieren um Kommentare zu schreiben
Hallo, erst mal
am 18.02.2013 - 17:52 Uhr
Hallo, erst mal Willkommen....
Deine Frage finde ich sehr gut, da merkt man gleich, dass Du Dir dir richtigen Gedanken beim Umgang mit Drupal machst :)
Zuerst musst du HTML im Menulink erlauben in dann injezieren:
function DEINTHEME_menu_link($variables) {
$element = $variables['element'];
$sub_menu = '';
if ($element['#below']) {
$sub_menu = drupal_render($element['#below']);
}
$element['#localized_options']['html'] = TRUE; //hier erlauben
$output = l('<em><b>'.$element['#title'].'</b></em>', $element['#href'], $element['#localized_options']); //hier injezieren
return '<li' . drupal_attributes($element['#attributes']) . '>' . $output . $sub_menu . "</li>\n";
}
Gruß
Christian