Próbuję użyć tego haka, aby zmienić link nawigacyjny:
hook_menu_breadcrumb_alter(&$active_trail, $item)
Hak nie wydaje się być nazywany.
Próbowałem :
- Korzystanie z haka na temat
- Korzystanie z haka na module niestandardowym (breadcrumb_finder_fix)
- Czyszczenie wszystkich skrzynek przy użyciu Drush
Mam zainstalowany i aktywowany moduł Devel, a poniższe nie generują żadnych danych wyjściowych.
function breadcrumb_finder_fix_menu_breadcrumb_alter(&$active_trail, $item) {
drupal_set_message(krumo($active_trail));
}
Jakieś pomysły ? Wskazówki dojazdu Proszę doradź.
OBS: Przeczytałem tę odpowiedź: /drupal//a/7659/12647
7
hooks
breadcrumbs
Jean-Michel Garcia
źródło
źródło
Odpowiedzi:
Oto fragment pokazujący, jak możesz zmienić bułkę tartą.
Pamiętaj, że:
Dodaj ten fragment kodu do pliku template.php swojego motywu.
źródło
Prawdopodobnie trochę późno, by odpowiedzieć, ale natknąłem się na ten wątek dziś rano, szukając sposobu na zastąpienie bułki tartej w Drupal 7, pomogło to trochę, więc pomyślałem, że dodam moje rozwiązanie.
To tworzy dodatkowe okruchy na podstawie typów treści i dodaje bieżącą stronę do okruchów. Używam tego, aby dodać okruchy do widoku filtrowania widzianego przed danym węzłem.
źródło
hook_menu_breadcrumb_alter () nie działa na stronach, na których wcześniej wywołano drupal_set_breadcrumb ().
hook_menu_breadcrumb_alter () jest wywoływany z menu_get_active_breadcrumb () . Jest to wywoływane z drupal_get_breadcrumb () , ale tylko jeśli wcześniej nie ustawiono breadcrumb z drupal_set_breadcrumb () .
Nie wygląda to na wywołanie funkcji drupal_set_breadcrumb () ze strony użytkownika. Ale może istnieje moduł contrib, który to robi. Możesz umieścić dpm () lub ddebug_backtrace () w drupal_set_breadcrumb (), aby zobaczyć, czy tak jest w tym przypadku (wymaga włączenia modułu devel i posiadania uprawnień do wyświetlania informacji o devel).
Zamiast tego możesz użyć hook_preprocess_breadcrumb (), ale wymaga to przeanalizowania łącza do breadcrumb, które chcesz zmienić. Ponieważ w tym haku łącza nawigacyjne są już renderowane jako HTML, więc potrzebujesz wyrażeń regularnych (preg_match ()) lub podobnych, aby określić np. Adres URL.
O wiele lepszym rozwiązaniem jest użycie jednego z różnych modułów dostosowywania bułki tartej, które są dostępne dla Drupala.
źródło
może to nie być najskuteczniejszy sposób, ale spróbuj:
function THEME_breadcrumb($variables)
a następnie przeczytaj zmienne.
... także mój boże, nienawidzę bułki tartej. tak wiele.
źródło
Jeśli potrzebujesz tylko zmienić element nawigacyjny na określonej stronie, być może poniższe rozwiązanie może ci pomóc. Przykład aktualizuje menu nawigacyjne dla formularza edycji.
Innym sposobem Drupala jest użytkownik,
hook_menu_breadcrumb_alter
ale pamiętaj, aby nazwać goYOUR_MODULE_menu_breadcrumb_alter
i wyczyścić pamięć podręczną po dodaniu funkcji.Lub też
theme_breadcrumb
jest sposobem Drupala na aktualizację bułki tartej, ale w tym haku powinieneś zmienić tylko znaczniki bułki tartej, a nie linki.źródło
THEME_NAME_breadcrumb
nie działa dla mnie. Udało mi się jednak zastąpić bułkę tartą za pomocą tej funkcji:kredyt trafia do: /programming/10087168/how-to-add-breadcrumb
źródło
funkcja MODULE_menu_breadcrumb_alter (& $ active_trail, $ item) {
}
tyle kodu wystarcza do zmodyfikowania adresu URL breadcrumb.
źródło