Agregar < span > etiquetas alrededor de cada elemento primario en Drupal

StackOverflow https://stackoverflow.com/questions/1201558

  •  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?

¿Fue útil?

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!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top