Estoy tratando de usar este gancho para alterar un enlace de ruta de navegación:
hook_menu_breadcrumb_alter(&$active_trail, $item)
El gancho no parece ser llamado.
He intentado :
- Usando el gancho en un tema
- Usar el gancho en un módulo personalizado (breadcrumb_finder_fix)
- Borrar todas las cachés con Drush
Tengo el módulo Devel instalado y activado, y lo siguiente no produce ningún resultado.
function breadcrumb_finder_fix_menu_breadcrumb_alter(&$active_trail, $item) {
drupal_set_message(krumo($active_trail));
}
Algunas ideas ? Direcciones ? Por favor avise.
OBS: He leído esta respuesta: /drupal//a/7659/12647
7
hooks
breadcrumbs
Jean-Michel Garcia
fuente
fuente
Respuestas:
Aquí hay un fragmento para mostrar cómo puede alterar las migas de pan.
Tenga en cuenta lo siguiente:
Agregue este fragmento al archivo template.php de su tema.
fuente
Probablemente un poco tarde para responder, pero me encontré con este hilo esta mañana mientras buscaba una forma de anular la ruta de navegación en Drupal 7, me ayudó un poco, así que pensé que agregaría mi solución.
Esto crea migajas adicionales basadas en tipos de contenido y agrega la página actual a la miga. Estoy usando esto para agregar una migaja a una vista de filtrado vista antes del nodo dado.
fuente
hook_menu_breadcrumb_alter () no funciona en páginas donde se ha llamado antes a drupal_set_breadcrumb ().
hook_menu_breadcrumb_alter () se invoca desde menu_get_active_breadcrumb () . Esto se llama desde drupal_get_breadcrumb () , pero solo si no se ha establecido previamente una ruta de exploración con drupal_set_breadcrumb () .
No parece que se llame a drupal_set_breadcrumb () desde la página del usuario. Pero tal vez hay un módulo contrib que hace eso. Puede poner un dpm () o ddebug_backtrace () en drupal_set_breadcrumb () para ver si este es el caso (necesita que el módulo de desarrollo esté habilitado y tiene permiso para ver la información de desarrollo).
En su lugar, puede usar hook_preprocess_breadcrumb (), pero esto requiere analizar el enlace de ruta de exploración que desea modificar. Debido a que en este enlace los enlaces de ruta de navegación ya se representan como html, por lo que necesita expresiones regulares (preg_match ()) o similares para determinar, por ejemplo, la url.
Una solución mucho mejor es usar uno de los diversos módulos de personalización de migas de pan que están disponibles para Drupal.
fuente
Esta puede no ser la forma más eficiente, pero intente:
function THEME_breadcrumb($variables)
y luego lee las variables.
... también Dios mío, odio las migas de pan. tanto.
fuente
Si solo necesita modificar la ruta de exploración en una página específica, tal vez la siguiente solución pueda ayudarlo. El ejemplo actualiza la ruta de exploración para un formulario de edición.
Otra forma de Drupal es usar el usuario,
hook_menu_breadcrumb_alter
pero asegúrese de nombrarloYOUR_MODULE_menu_breadcrumb_alter
y borrar el caché después de agregar la función.O también
theme_breadcrumb
es una forma de Drupal para actualizar la ruta de exploración, pero en este enlace solo debe cambiar el marcado de la ruta de exploración, no los enlaces.fuente
El
THEME_NAME_breadcrumb
no funcionó para mí. Sin embargo, logré anular la ruta de navegación con esta función:el crédito va a: /programming/10087168/how-to-add-breadcrumb
fuente
function MODULE_menu_breadcrumb_alter (& $ active_trail, $ item) {
}
este código es suficiente para modificar la URL de la ruta de exploración.
fuente