Drupal6: In theme_preprocess_page (& amp; $ vars), da dove provengono $ vars? (Come manipolare il pangrattato)

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

  •  05-07-2019
  •  | 
  •  

Domanda

Voglio rimuovere il pangrattato quando è solo una voce (" Home "). Sono nella funzione theme_preprocess_page (& amp; $ vars) del mio tema. $ vars ['breadcrumb'] è disponibile, ma è solo HTML. Questo è un po 'goffo con cui lavorare. Preferirei prenderlo come una serie di elementi nell'elenco breadcrumb e fare qualcosa del genere:

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

Da dove viene $ vars ? Come posso sovrascrivere il codice creando in origine?

È stato utile?

Soluzione

Un array $ vars viene passato tra tutte le funzioni di preelaborazione. Nel caso delle funzioni _preprocess_page, la maggior parte dei valori in $ vars sono creati in template_preprocess_page (vedi http://api.drupal.org/api/function/template_preprocess_page/6 ). In quella funzione, vedrai:

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

Qui, drupal_get_breacrumb restituisce una matrice di elementi breadcrumb, che è quindi a tema con la funzione theme_breadcrumb () (o la sua sostituzione).

Il modo più semplice per ottenere ciò che vuoi è sovrascrivere la funzione theme_breadcrumb. Per fare ciò, prendi la funzione theme_breadcrumb originale ( http://api.drupal.org / api / function / theme_breadcrumb / 6 ), copiarlo sul template.php, sostituire "theme" nel nome della funzione con il nome del tema e modificare il codice in questo modo:

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

Per una migliore comprensione delle sostituzioni dei temi di Drupal e delle funzioni di preelaborazione, vedere Informazioni sulla sostituzione dell'output tematico e < a href = "http://drupal.org/node/223430" rel = "nofollow noreferrer"> Impostazione delle variabili da utilizzare in un modello (funzioni di preelaborazione) .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top