Pregunta

Tengo un tema de drupal llamado Wellington ubicado en \ Sitios \ Todos \ Themes \ Wellington.Deseo anular la función MENU_ITEM y seguí las instrucciones de http://drupal.org/node/310356.

Quiero agregar una clase al LI como se describe.

He intentado nombrar la función Wellington_Menu_Item e intenté Phptemplate_Menu_Item pero sin suerte.Puedo poner las declaraciones de impresión en la función y se muestran en la pantalla.

Además, puedo imprimir la cadena de retorno justo antes de que se devuelva y su correcto, pero cuando se presenta el menú, no hay diferencia, es la principal que muestra la principal, es decir, ninguna anulación.

El tema en sí está funcionando bien y puedo ver el CSS y HTML.

¿Estoy perplejo, alguna idea?

<?php
/**
* Theme override for theme_menu_item()
*/
function phptemplate_menu_item($link, $has_children, $menu = '', $in_active_trail = FALSE, $extra_class = NULL) {
  $class = ($menu ? 'expanded' : ($has_children ? 'collapsed' : 'leaf'));
  if (!empty($extra_class)) {
    $class .= ' '. $extra_class;
  }
  if ($in_active_trail) {
    $class .= ' active-trail';
  }

  // Add unique identifier
  static $item_id = 0;
  $item_id += 1;
  $id .= ' ' . 'menu-item-custom-id-' . $item_id;
  // Add semi-unique class
  $class .= ' ' . preg_replace("/[^a-zA-Z0-9]/", "", strip_tags($link));

  return '<li class="'. $class .'" id="' . $id . '">'. $link . $menu ."</li>\n";
}
?>

se llama en la página.tpl.php usando

<?php print theme('links', $primary_links); ?>

¿Fue útil?

Solución

A medida que menciona poder imprimir la cadena de resultados antes de devolverla, las anulaciones funcionan.Lo que sospecho es que el resultado de su función no se usa en realidad cuando se presta.Quizás porque se almacena en una variable de plantilla que luego se anula con otro valor en una función de preprocesamiento llamada más tarde.

Le sugiero que use el Desarrollador temático Módulo para verificar qué plantilla / función se utiliza para representar su funciónArtículo de menú.

Otros consejos

No olvide vacuir su caché de navegador y el caché de DRUPAL cuando agregó la función a la plantilla.php.El claro del caché del navegador no debe ser necesario, pero a veces es útil para otros cambios.

(Configuración del sitio - Performance - Borrar datos en caché)

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