Drupal6: en theme_preprocess_page (& amp; $ vars), ¿de dónde proviene $ vars? (Como manipular la miga de pan)

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

  •  05-07-2019
  •  | 
  •  

Pregunta

Quiero eliminar la ruta de navegación cuando solo sea una entrada (" Inicio "). Estoy en la función theme_preprocess_page (& amp; $ vars) . $ vars ['breadcrumb'] está disponible, pero solo es HTML. Esto es un poco torpe para trabajar. Prefiero obtenerlo como un conjunto de elementos en la lista de ruta de navegación, y hacer algo como esto:

if (count($breadcrumb) == 1) {
    unset($breadcrumb);
}

¿De dónde viene $ vars ? ¿Cómo puedo anular el código que lo creó originalmente?

¿Fue útil?

Solución

Se pasa una matriz $ vars entre todas las funciones de preproceso. En el caso de las funciones _preprocess_page, la mayoría de los valores en $ vars se crean en template_preprocess_page (consulte http://api.drupal.org/api/function/template_preprocess_page/6 ). En esa función, verás:

  $variables['breadcrumb']        = theme('breadcrumb', drupal_get_breadcrumb());

Aquí, drupal_get_breacrumb devuelve una matriz de elementos de ruta de navegación, que luego tiene como tema la función theme_breadcrumb () (o su anulación).

La forma más fácil de obtener lo que desea es anular la función theme_breadcrumb. Para hacer eso, toma la función original theme_breadcrumb ( http://api.drupal.org / api / function / theme_breadcrumb / 6 ), cópielo en su template.php, reemplace 'tema' en el nombre de la función con el nombre de su tema y modifique el código para que se vea así:

function THEMENAME_breadcrumb($breadcrumb) {
  if (count($breadcrumb) > 1) { // This was:  if (!empty($breadcrumb))
    return '<div class="breadcrumb">'. implode(' » ', $breadcrumb) .'</div>';
  }
}

Para una mejor comprensión de las funciones de reemplazo y preprocesamiento de Drupal, consulte Acerca de anular la salida temática y < a href = "http://drupal.org/node/223430" rel = "nofollow noreferrer"> Configuración de variables para usar en una plantilla (funciones de preproceso) .

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