Ajout de < span > balises autour de chaque élément principal dans Drupal
-
05-07-2019 - |
Question
J'aimerais que mes liens principaux dans Drupal ressemblent à ceci dans le code:
<a class="active" title="Go to the Foo Homepage" href="/"><span>Home</span></a>
Plutôt que:
<a class="active" title="Go to the Foo Homepage" href="/">Home</a>
Je peux alors appeler le span
séparément du a
.
(Je sais que cela semble être une chose un peu étrange à faire, mais il s'agit de remédier au manque de prise en charge par IE du rayon de la bordure associé à l'incapacité de définir 2 images d'arrière-plan.)
Alors, savez-vous où & amp; comment je fais en sorte que Drupal insère ces balises dans tous mes liens principaux?
La solution
Je suppose que quelque part dans votre page.tpl.php
, vous avez quelque chose comme ceci pour afficher le menu principal:
print theme('links', $primary_links, array('class' => 'links primary-links'));
Une solution (pourrait ne pas être la solution la plus propre, mais devrait fonctionner) consisterait à itérer sur les éléments de $ liens_principaux
, pour chacun d'eux:
- activer le mode HTML
- encapsulez le
titre
avec< span >
et< / span >
Si votre menu comporte un seul niveau, je suppose que cela suffirait:
foreach ($primary_links as & $link) {
$link['html'] = true;
$link['title'] = '<span>' . $link['title'] . '</span>';
}
Ensuite, vous pouvez appeler thème
comme vous le faites déjà.
Avec cela, vous devriez obtenir des balises < span >
autour du texte du lien, sans les avoir injectées dans l'attribut titre
du < a >
tags.
Si vous avez plus de niveaux dans votre menu, vous devrez parcourir plus bas; soit avec deux boucles imbriquées, soit avec une sorte de récursion si vous ne connaissez pas la profondeur de vos menus.
(Je vais vous laisser vous amuser avec ça; ce que j'ai dit devrait être suffisant pour vous aider à démarrer ;-))
Sidenote, cela pourrait probablement être fait quelque part dans template.php
aussi ... Peut-être un meilleur endroit; mais je vous laisse décider quelle solution vous préférez ...
Amusez-vous!
Autres conseils
Cela devrait aider http://drupal.org/node/221382
.Faites défiler la liste jusqu'à ce commentaire pour la solution finale http://drupal.org/node/ 221382 # comment-755469 . La sortie HTML présente des problèmes qui y sont résolus.
Pour mémoire, au final, je viens d'utiliser le module menu_html et d'entrer les éléments de menu comme < span > élément de menu 1 < / span >
dans les dialogues correspondants.
En fait,
L'élément de menu est étendu & , et et le / span > dans l'un d'eux, car il a été développé et possède déjà une image d'arrière-plan. ensemble. Il en a maintenant 3!
Au moins mes coins courbes sur mes onglets fonctionnent maintenant dans IE. Une autre fois, IE absorbe 5/6 heures simplement parce qu’il ne prend pas correctement en charge CSS!