J'essaie d'utiliser ce crochet pour modifier un lien de navigation:
hook_menu_breadcrumb_alter(&$active_trail, $item)
Le crochet ne semble pas s'appeler.
J'ai essayé :
- Utiliser le crochet sur un thème
- Utilisation du crochet sur un module personnalisé (breadcrumb_finder_fix)
- Effacement de tous les caches à l'aide de Drush
J'ai le module Devel installé et activé, et ce qui suit ne produit aucune sortie.
function breadcrumb_finder_fix_menu_breadcrumb_alter(&$active_trail, $item) {
drupal_set_message(krumo($active_trail));
}
Des idées ? Instructions ? S'il vous plaît donnez votre avis.
OBS: J'ai lu cette réponse: /drupal//a/7659/12647
7
hooks
breadcrumbs
Jean-Michel Garcia
la source
la source
Réponses:
Voici un extrait pour montrer comment vous pouvez modifier le fil d'Ariane.
Gardez à l'esprit les points suivants:
Ajoutez cet extrait au fichier template.php de votre thème.
la source
Probablement un peu tard pour répondre, mais je suis tombé sur ce sujet ce matin alors que je cherchais un moyen de remplacer le fil d'Ariane dans Drupal 7, cela m'a un peu aidé, alors j'ai pensé ajouter ma solution.
Cela crée des miettes supplémentaires en fonction des types de contenu et ajoute la page actuelle à la miette. J'utilise ceci pour ajouter une miette à une vue de filtrage vue avant le nœud donné.
la source
hook_menu_breadcrumb_alter () ne fonctionne pas sur les pages où drupal_set_breadcrumb () a été appelé auparavant.
hook_menu_breadcrumb_alter () est appelé à partir de menu_get_active_breadcrumb () . Ceci est appelé depuis drupal_get_breadcrumb () , mais uniquement si aucun fil d' Ariane n'a été précédemment défini avec drupal_set_breadcrumb () .
Il ne semble pas que drupal_set_breadcrumb () soit appelé depuis la page utilisateur. Mais il y a peut-être un module contrib qui fait ça. Vous pouvez mettre un dpm () ou ddebug_backtrace () dans drupal_set_breadcrumb () pour voir si c'est le cas (nécessite l'activation du module devel, et vous avez la permission de voir les informations devel).
Vous pouvez utiliser hook_preprocess_breadcrumb () à la place, mais cela nécessite d'analyser le lien de navigation que vous souhaitez modifier. Parce que dans ce hook, les liens du fil d'Ariane sont déjà rendus en html, donc vous avez besoin d'expressions régulières (preg_match ()) ou similaire pour déterminer par exemple l'url.
Une bien meilleure solution consiste à utiliser l'un des différents modules de personnalisation du fil d'Ariane disponibles pour Drupal.
la source
ce n'est peut-être pas le moyen le plus efficace, mais essayez:
function THEME_breadcrumb($variables)
puis lisez les variables.
... aussi mon dieu, je déteste la chapelure. tellement de.
la source
Si vous avez seulement besoin de modifier le fil d'Ariane sur une page spécifique, la solution suivante peut peut-être vous aider. L'exemple met à jour le fil d'Ariane d'un formulaire de modification.
Une autre façon Drupal est d'utiliser l'utilisateur
hook_menu_breadcrumb_alter
mais assurez-vous de le nommerYOUR_MODULE_menu_breadcrumb_alter
et de vider le cache après avoir ajouté la fonction.Ou
theme_breadcrumb
est également un moyen Drupal de mettre à jour le fil d'Ariane, mais dans ce crochet, vous devez uniquement modifier le balisage du fil d'Ariane, pas les liens.la source
cela
THEME_NAME_breadcrumb
n'a pas fonctionné pour moi. Cependant, j'ai réussi à remplacer le fil d'Ariane avec cette fonction:le crédit va à: /programming/10087168/how-to-add-breadcrumb
la source
fonction MODULE_menu_breadcrumb_alter (& $ active_trail, $ item) {
}
ce code est suffisant pour modifier l'URL du fil d'Ariane.
la source