Estoy tratando de modificar el resultado HTML en un tema de Drupal 7 que estoy creando.Drupal 7: ¿Modificar la salida HTML del menú?
Básicamente, en lugar de < li> s que contiene simplemente < a> s con texto, quiero incluir algo de HTML adicional dentro del < 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 el resultado 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 usted puede poner un gancho en template.php para anular la función que crea el código HTML. No puedo entender cómo crear la función de anulación real. ¿Puede alguien señalarme en la dirección correcta, por favor?
Genial, exactamente lo que necesitaba. ¡Gracias! –
La respuesta aceptada usa theme_menu_item que es Drupal 6. El equivalente en Drupal 7 es theme_menu_item http://api.drupal.org/api/drupal/includes--menu.inc/function/theme_menu_link/7 – Rimian
@Rimian Drupal 7 usos theme_menu_link en lugar de theme_menu_item. –