drupal-7 drupal-themes

Drupal 7: ¿Modificando la salida HTML del menú?



menu attributes drupal 8 (1)

Estoy intentando modificar la salida HTML en un tema de Drupal 7 que estoy creando.

Básicamente, en lugar de que las <li> s contengan solo <a> s con texto, quiero incluir un poco de HTML adicional dentro de <a>.

Sé que es posible modificar el HTML creado por los menús en Drupal. Puedo ver la siguiente llamada en page.tpl.php:

<?php print theme(''links__system_main_menu'', array( ''links'' => $main_menu, ''attributes'' => array( ''id'' => ''main-menu'', ''class'' => array(''links'', ''clearfix''), ), ''heading'' => array( ''text'' => t(''''), ''level'' => ''h2'', ''class'' => array(''element-invisible''), ), )); ?>

que aparentemente llama a la función de tema, que crea la salida. Una forma de modificar la salida sería modificar la función theme_links en theme.inc, ¿verdad?

http://api.drupal.org/api/drupal/includes--theme.inc/function/theme_links

También sé que puede poner un gancho en template.php para anular la función que crea el HTML. No puedo averiguar cómo crear la función de anulación real. ¿Alguien puede señalarme en la dirección correcta, por favor?


Lo que haría es implementar un gancho para modificar la salida, no modificar el archivo "theme.inc" directamente.

Por ejemplo, la respuesta aceptada en esta página: Plantilla de menú personalizado de anulación de Drupal

Y, como regla general, cuando desee modificar la salida de algo, implemente un enlace (en un módulo o en el template.php del tema activo) o use una plantilla con un nombre de archivo predefinido cuando exista un caso así ( cuando ya no existe una plantilla, también puede modificar la lista de sugerencias de plantillas utilizando un módulo o el tema).