Agregar < span > etiquetas alrededor de cada elemento primario en Drupal
-
05-07-2019 - |
Pregunta
Me gustaría que mis enlaces principales en Drupal se vean así en el código:
<a class="active" title="Go to the Foo Homepage" href="/"><span>Home</span></a>
En lugar de:
<a class="active" title="Go to the Foo Homepage" href="/">Home</a>
Por lo tanto, puedo diseñar el span
por separado del a
.
(Sé que suena como una cosa un poco extraña de hacer, pero tiene que ver con solucionar la falta de compatibilidad del radio de frontera de IE junto con la incapacidad de establecer 2 imágenes de fondo).
Entonces, ¿sabes dónde & amp; ¿Cómo consigo que Drupal inserte estas etiquetas en todos mis enlaces principales?
Solución
Supongo que, en algún lugar de tu page.tpl.php
, tienes algo como esto para mostrar el menú principal:
print theme('links', $primary_links, array('class' => 'links primary-links'));
Una solución (podría no ser la más limpia, pero debería funcionar) sería iterar sobre los elementos de $ primary_links
, para, para cada uno,:
- activa el modo HTML
- envuelva el
título
con< span >
y</span>
Si su menú tiene solo un nivel, supongo que esto haría:
foreach ($primary_links as & $link) {
$link['html'] = true;
$link['title'] = '<span>' . $link['title'] . '</span>';
}
Y, después de eso, puedes llamar a theme
como ya lo estás haciendo ahora.
Con eso, debe obtener las etiquetas < span >
alrededor del texto del enlace, sin haberlas insertado en el atributo title
de < a >
etiquetas.
Si tiene más niveles en su menú, tendrá que iterar más abajo; ya sea con dos bucles imbricados, o con algún tipo de recursión si no conoce la profundidad de sus menús.
(Te dejaré divertirte con eso; lo que dije debería ser suficiente para que comiences ;-))
Como una nota al margen, esto probablemente podría hacerse en algún lugar en template.php
también ... Podría ser un lugar mejor; pero te dejaré decidir qué solución prefieres ...
¡Diviértete!
Otros consejos
Esto debería ayudar a http://drupal.org/node/221382
Desplácese hacia abajo hasta este comentario para obtener la solución final http://drupal.org/node/ 221382 # comment-755469 . Hay problemas con la salida html que se resuelven allí.
Para el registro, al final solo utilicé el módulo menu_html e ingresé los elementos del menú como < span > Elemento de menú 1 < / span >
en los diálogos relevantes.
De hecho, terminé con < span > < span > Elemento de menú Expandido < / span > < / span >
en uno de ellos porque estaba expandido y ya tenía una imagen de fondo conjunto. ¡Ahora tiene 3!
Al menos mis esquinas curvas en mis pestañas están trabajando ahora en IE. ¡Otra vez que IE absorbe 5/6 horas solo porque no admite CSS correctamente!