Aggiunta di < span > tag attorno a ciascun elemento principale in Drupal
-
05-07-2019 - |
Domanda
Vorrei che i miei collegamenti principali in Drupal fossero così nel codice:
<a class="active" title="Go to the Foo Homepage" href="/"><span>Home</span></a>
Invece di:
<a class="active" title="Go to the Foo Homepage" href="/">Home</a>
Quindi posso quindi definire lo span
separatamente da a
.
(So che sembra una cosa un po 'strana da fare, ma ha a che fare con aggirare la mancanza di supporto di confine-raggio di IE unito all'impossibilità di impostare 2 immagini di sfondo.)
Quindi sai dove & amp; come ottengo che Drupal inserisca questi tag in tutti i miei collegamenti principali?
Soluzione
Immagino, da qualche parte nella tua page.tpl.php
, hai qualcosa del genere per visualizzare il menu principale:
print theme('links', $primary_links, array('class' => 'links primary-links'));
Una soluzione (potrebbe non essere la più pulita - ma dovrebbe funzionare) sarebbe quella di iterare sugli elementi di $ primary_links
, per, per ciascuno,:
- attiva la modalità HTML
- racchiudi il
titolo
con< span >
e</span>
Se il tuo menu ha un solo livello, suppongo che lo farebbe:
foreach ($primary_links as & $link) {
$link['html'] = true;
$link['title'] = '<span>' . $link['title'] . '</span>';
}
E, successivamente, puoi chiamare theme
come stai già facendo ora
Detto questo, dovresti ottenere i tag < span >
attorno al testo del link, senza farli iniettare nell'attributo del
< a >
.
Se hai più livelli nel tuo menu, dovrai scorrere più in basso; o con due loop imbricati o con una sorta di ricorsione se non si conosce la profondità dei menu.
(Ti farò divertire con quello; quello che ho detto dovrebbe essere sufficiente per iniziare ;-))
Come sidenote, questo potrebbe probabilmente essere fatto da qualche parte anche in template.php
... Potrebbe essere un posto migliore; ma ti lascerò decidere quale soluzione preferisci ...
Buon divertimento!
Altri suggerimenti
Questo dovrebbe aiutare http://drupal.org/node/221382
Scorri verso il basso fino a questo commento per la soluzione finale http://drupal.org/node/ 221382 # comment-755469 . Ci sono problemi con l'output html che vengono risolti lì.
Per la cronaca, alla fine ho usato il modulo menu_html e ho inserito le voci di menu come < span > Voce di menu 1 < / span >
nei relativi dialoghi.
In effetti ho finito con < span > < span > Voce di menu espanso < / span > < / span >
in uno di essi perché era espanso e aveva già un'immagine di sfondo impostato. Ora ha 3!
Almeno i miei angoli curvi sulle mie schede funzionano ora in IE. Un'altra volta in cui IE viene assorbito per 5/6 ore solo perché non supporta correttamente i CSS!