Drupal6: Dans theme_preprocess_page (& amp; $ vars), d'où vient vars $? (Comment manipuler le fil d'Ariane)

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

  •  05-07-2019
  •  | 
  •  

Question

Je souhaite supprimer le fil d'Ariane lorsqu'il ne s'agit que d'une entrée ("Accueil"). Je suis dans la fonction theme_preprocess_page (& amp; $ vars) de mon thème. $ vars ["breadcrumb"] est disponible, mais c'est juste du HTML. C'est un peu trop maladroit pour travailler avec. Je préférerais l'avoir comme un tableau d'éléments dans la liste de fil d'Ariane, et faire quelque chose comme ceci:

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

D'où vient $ vars ? Comment puis-je remplacer le code qui le crée à l'origine?

Était-ce utile?

La solution

Un tableau $ vars est passé entre toutes les fonctions de prétraitement. Dans le cas des fonctions _preprocess_page, la plupart des valeurs de $ vars sont créées dans template_preprocess_page (voir http://api.drupal.org/api/function/template_preprocess_page/6 ). Dans cette fonction, vous verrez:

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

Ici, drupal_get_breacrumb renvoie un tableau d'éléments de navigation, qui est ensuite thématisé par la fonction theme_breadcrumb () (ou son remplacement).

Le moyen le plus simple d’obtenir ce que vous voulez est de remplacer la fonction theme_breadcrumb. Pour ce faire, vous utilisez la fonction originale theme_breadcrumb ( http://api.drupal.org / api / function / theme_breadcrumb / 6 ), copiez-le dans votre template.php, remplacez "theme" dans le nom de la fonction par le nom de votre thème et modifiez le code de sorte qu'il ressemble à ceci:

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

Pour une meilleure compréhension des substitutions de thèmes et des fonctions de prétraitement Drupal, voir À propos du remplacement de la sortie thématique et < a href = "http://drupal.org/node/223430" rel = "nofollow noreferrer"> Configuration de variables à utiliser dans un modèle (fonctions de pré-traitement) .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top