2009-07-29 31 views
1

Ich würde meine primären Links in Drupal mag wie dies in Code suchen:<span> Tags um jedes primäres Element in Drupal

<a class="active" title="Go to the Foo Homepage" href="/"><span>Home</span></a> 

Statt:

<a class="active" title="Go to the Foo Homepage" href="/">Home</a> 

So kann ich dann Stil die span getrennt von der a.

(Ich weiß, dass wie eine etwas seltsame Sache klingt zu tun, aber es ist mit arbeiten rund um IE Mangel an border-radius Unterstützung mit der Unfähigkeit verbunden zu tun 2 Bilder Hintergrund festlegen.)

So wissen Sie, wo & Wie bekomme ich Drupal, um diese Tags in alle meine primären Links einzufügen?

Antwort

2

Ich vermute, irgendwo in Ihrem page.tpl.php, haben Sie so etwas wie dies die primäre Menü anzuzeigen:

print theme('links', $primary_links, array('class' => 'links primary-links')); 

Eine Lösung (vielleicht nicht die saubersten sein -, sollte aber funktionieren) würde sein auf die Elemente von $primary_links iterieren, um für jeden,:

  • activate HTML-Modus
  • die title mitwickelnund </span>

Wenn Ihr Menü nur eine Ebene hat, nehme ich dies tun würde:

foreach ($primary_links as & $link) { 
    $link['html'] = true; 
    $link['title'] = '<span>' . $link['title'] . '</span>'; 
} 

Und danach, Sie theme nennen wie Sie bereits jetzt zu tun.

Damit sollten Sie <span> Tags rund um den Text des Links bekommen, ohne sie in der title ‚s Attribut der <a> Tags injiziert hat.


Ich habe mehr Ebenen in Ihrem Menü, Sie müssen weiter unten iterieren; entweder mit zwei überlappenden Schleifen oder mit einer Art Rekursion, wenn Sie die Tiefe Ihrer Menüs nicht kennen.
(Ich lasse Sie mit dem Spaß zu haben, was ich gesagt habe genug sein, sollten Sie begonnen ;-) zu bekommen)


Als Nebenbemerkung, könnte dies wahrscheinlich irgendwo in template.php auch getan ... Könnte sein ein besserer Ort ; aber ich lasse dich entscheiden, welche Lösung du bevorzugst ...


Viel Spaß!

+0

Das war wirklich nah dran - danke, dass Sie mich in die richtige Richtung weisen. Am Ende musste ich '$ primary_links_tree' editieren, obwohl mein Thema das benutzte, um das Menü zu erstellen und nicht nur' $ primary_links'. Nahe genug, um als Antwort angenommen zu werden :) – x3ja

+0

Gern geschehen: OK über den Namen der Variablen: Ich nahm das Standardthema von der Girlande und dachte nicht darüber nach zu sagen, es könnte etwas tunneln ^^ –

+0

Eigentlich ist das viel schwieriger, als ich erwartet habe, da '$ primary_links_tree' vor dem Aufruf in 'page.tpl.php' vorgerendert wird und ich nicht so weit zurückverfolgt werden kann, um es einzufügen Du hast gesagt, dass ... – x3ja

0

Für die Aufzeichnung, am Ende habe ich nur die menu_html module verwendet und die Menüpunkte als <span>Menu Item 1</span> in den entsprechenden Dialogen eingegeben.

In der Tat endete ich mit <span><span>Menu Item Expanded</span></span> in einem von ihnen, weil es erweitert wurde und bereits ein Hintergrundbild gesetzt hatte. Es hat jetzt 3!

Zumindest meine gebogenen Ecken auf meinen Tabs funktionieren jetzt im IE. Ein anderes Mal, dass IE 5/6 Stunden saugt, nur weil es CSS nicht richtig unterstützt!

Verwandte Themen