Я пытаюсь использовать этот хук, чтобы изменить ссылку крошки:
hook_menu_breadcrumb_alter(&$active_trail, $item)
Крюк, кажется, не называется.
Я пробовал :
- Использование крюка на тему
- Использование хука в пользовательском модуле (breadcrumb_finder_fix)
- Очистка всех кешей с помощью Drush
У меня установлен и активирован модуль Devel, и следующее не дает никакого результата.
function breadcrumb_finder_fix_menu_breadcrumb_alter(&$active_trail, $item) {
drupal_set_message(krumo($active_trail));
}
Есть идеи ? Направления? Пожалуйста, порекомендуйте.
OBS: я прочитал этот ответ: /drupal//a/7659/12647
7
hooks
breadcrumbs
Жан-Мишель Гарсия
источник
источник
Ответы:
Вот фрагмент, чтобы показать, как вы можете изменить панировочные сухари.
Имейте в виду следующее:
Добавьте этот фрагмент в файл template.php вашей темы.
источник
Возможно, немного поздно, чтобы ответить, но я наткнулся на эту тему этим утром, когда искал способ переопределить крошку в Drupal 7, это немного помогло, поэтому я подумал, что добавлю свое решение.
Это создает дополнительные крошки на основе типов контента и добавляет текущую страницу в крошку. Я использую это, чтобы добавить крошку к фильтрующему представлению, замеченному перед данным узлом.
источник
Функция hook_menu_breadcrumb_alter () не работает на страницах, где ранее вызывался drupal_set_breadcrumb ().
hook_menu_breadcrumb_alter () вызывается из menu_get_active_breadcrumb () . Это вызывается из drupal_get_breadcrumb () , но только если хлебные крошки ранее не были установлены с помощью drupal_set_breadcrumb () .
Это не похоже на то, что drupal_set_breadcrumb () вызывается со страницы пользователя. Но, возможно, есть модуль contrib, который это делает. Вы можете поместить dpm () или ddebug_backtrace () в drupal_set_breadcrumb (), чтобы увидеть, так ли это (требуется, чтобы модуль devel был включен, и у вас было разрешение на просмотр информации devel).
Вместо этого вы можете использовать hook_preprocess_breadcrumb (), но для этого необходимо проанализировать ссылку на крошку, которую вы хотите изменить. Поскольку в этом хуке ссылки на хлебные крошки уже отображаются как html, поэтому вам нужны регулярные выражения (preg_match ()) или аналогичные для определения, например, url.
Гораздо лучшим решением является использование одного из различных модулей настройки крошки , доступных для Drupal.
источник
это может быть не самый эффективный способ, но попробуйте:
function THEME_breadcrumb($variables)
и затем прочитайте переменные.
... также мой бог, я ненавижу крошки. так много.
источник
Если вам нужно только изменить крошку на определенной странице, возможно, вам поможет следующее решение. В примере обновляется хлебная крошка для формы редактирования.
Другой способ Drupal для пользователя
hook_menu_breadcrumb_alter
но не забудьте назвать егоYOUR_MODULE_menu_breadcrumb_alter
и очистить кеш после добавления функции.Или же
theme_breadcrumb
это Drupal-способ обновления хлебной крошки, но в этом хуке вы должны изменять только разметку хлебной крошки, а не ссылки.источник
THEME_NAME_breadcrumb
не работает для меня. Тем не менее, мне удалось переопределить крошку с помощью этой функции:кредит идет по адресу : /programming/10087168/how-to-add-breadcrumb
источник
function MODULE_menu_breadcrumb_alter (& $ active_trail, $ item) {
}
этого кода достаточно, чтобы изменить URL крошки.
источник