Estou tentando usar esse gancho para alterar um link de trilha de navegação:
hook_menu_breadcrumb_alter(&$active_trail, $item)
O gancho não parece ser chamado.
Eu tentei :
- Usando o gancho em um tema
- Usando o gancho em um módulo personalizado (breadcrumb_finder_fix)
- Limpando todos os caches usando Drush
Eu tenho o módulo Devel instalado e ativado, e o seguinte não produz nenhuma saída.
function breadcrumb_finder_fix_menu_breadcrumb_alter(&$active_trail, $item) {
drupal_set_message(krumo($active_trail));
}
Alguma ideia ? Instruções ? Por favor informar.
OBS: Eu li esta resposta: /drupal//a/7659/12647
7
hooks
breadcrumbs
Jean-Michel Garcia
fonte
fonte
Respostas:
Aqui está um trecho para mostrar como você pode alterar a farinha de rosca.
Lembre-se do seguinte:
Adicione esse trecho ao arquivo template.php do seu tema.
fonte
Provavelmente um pouco tarde para responder, mas me deparei com esse tópico esta manhã enquanto procurava uma maneira de substituir a trilha de navegação no Drupal 7, ajudou um pouco, então pensei em adicionar minha solução.
Isso cria migalhas extras com base nos tipos de conteúdo e adiciona a página atual à migalha. Estou usando isso para adicionar uma migalha a uma exibição de filtragem vista antes do nó especificado.
fonte
hook_menu_breadcrumb_alter () não funciona em páginas onde drupal_set_breadcrumb () já foi chamado anteriormente.
hook_menu_breadcrumb_alter () é chamado em menu_get_active_breadcrumb () . Isso é chamado de drupal_get_breadcrumb () , mas apenas se nenhuma trilha de navegação tiver sido definida anteriormente com drupal_set_breadcrumb () .
Não parece que drupal_set_breadcrumb () seja chamado na página do usuário. Mas talvez haja um módulo contrib que faça isso. Você pode colocar um dpm () ou ddebug_backtrace () em drupal_set_breadcrumb () para ver se esse é o caso (precisa que o módulo devel esteja ativado e você tenha permissão para ver informações sobre o devel).
Você pode usar hook_preprocess_breadcrumb (), mas isso requer a análise do link da trilha de navegação que você deseja alterar. Como neste gancho, os links de trilha de navegação já são renderizados como html, então você precisa de expressões regulares (preg_match ()) ou similares para determinar, por exemplo, o URL.
Uma solução muito melhor é usar um dos vários módulos de personalização de trilhas disponíveis para o Drupal.
fonte
essa pode não ser a maneira mais eficiente, mas tente:
function THEME_breadcrumb($variables)
e depois leia as variáveis.
... também meu deus, eu odeio migalhas de pão. muito.
fonte
Se você precisar alterar apenas a trilha de navegação em uma página específica, talvez a solução a seguir possa ajudá-lo. O exemplo atualiza a trilha de navegação para um formulário de edição.
Outra maneira do Drupal é o usuário,
hook_menu_breadcrumb_alter
mas certifique-se de nomeá-loYOUR_MODULE_menu_breadcrumb_alter
e limpar o cache após adicionar a função.Ou também
theme_breadcrumb
é uma maneira Drupal de atualizar a trilha de navegação, mas neste gancho você deve alterar apenas a marcação da trilha de navegação, não os links.fonte
o
THEME_NAME_breadcrumb
não funcionou para mim. No entanto, consegui substituir a trilha de navegação por esta função:o crédito vai para: /programming/10087168/how-to-add-breadcrumb
fonte
função MODULE_menu_breadcrumb_alter (& $ active_trail, $ item) {
}
esse código é suficiente para modificar o URL da trilha de navegação.
fonte