Saya mencoba menggunakan pengait ini untuk mengubah tautan remah roti:
hook_menu_breadcrumb_alter(&$active_trail, $item)
Pengait sepertinya tidak disebut.
Saya sudah mencoba:
- Menggunakan kait pada sebuah tema
- Menggunakan pengait pada modul khusus (breadcrumb_finder_fix)
- Membersihkan semua cache menggunakan Drush
Saya memiliki modul Devel diinstal dan diaktifkan, dan berikut ini tidak menghasilkan output apa pun.
function breadcrumb_finder_fix_menu_breadcrumb_alter(&$active_trail, $item) {
drupal_set_message(krumo($active_trail));
}
Ada ide? Petunjuk arah? Mohon saran.
OBS: Saya sudah membaca jawaban ini: /drupal//a/7659/12647
7
hooks
breadcrumbs
Jean-Michel Garcia
sumber
sumber
Jawaban:
Berikut ini cuplikan untuk menunjukkan bagaimana Anda dapat mengubah remah roti.
Ingatlah yang berikut:
Tambahkan potongan ini ke file template.php dari tema Anda.
sumber
Mungkin agak terlambat untuk merespons, tetapi saya menemukan utas ini pagi ini sambil mencari cara untuk menimpa remah roti di Drupal 7, itu sedikit membantu jadi saya pikir saya akan menambahkan solusi saya.
Ini membuat remah tambahan berdasarkan jenis konten dan menambahkan halaman saat ini ke remah. Saya menggunakan ini untuk menambahkan remah ke tampilan penyaringan yang terlihat sebelum node yang diberikan.
sumber
hook_menu_breadcrumb_alter () tidak berfungsi pada halaman di mana drupal_set_breadcrumb () telah dipanggil sebelumnya.
hook_menu_breadcrumb_alter () dipanggil dari menu_get_active_breadcrumb () . Ini dipanggil dari drupal_get_breadcrumb () , tetapi hanya jika sebelumnya tidak ada breadcrumb yang disetel dengan drupal_set_breadcrumb () .
Itu tidak terlihat seperti drupal_set_breadcrumb () dipanggil dari halaman pengguna. Tapi mungkin ada modul contrib yang melakukan itu. Anda bisa meletakkan dpm () atau ddebug_backtrace () di drupal_set_breadcrumb () untuk melihat apakah ini masalahnya (perlu modul devel untuk diaktifkan, dan Anda memiliki izin untuk melihat informasi devel).
Anda bisa menggunakan hook_preprocess_breadcrumb (), tetapi ini membutuhkan penguraian tautan breadcrumb yang ingin Anda ubah. Karena dalam kait ini tautan breadcrumb sudah dirender sebagai html, jadi Anda perlu ekspresi reguler (preg_match ()) atau yang serupa untuk menentukan misalnya url.
Solusi yang jauh lebih baik adalah dengan menggunakan salah satu dari berbagai modul penyesuaian remah roti yang tersedia untuk Drupal.
sumber
ini mungkin bukan cara yang paling efisien, tetapi cobalah:
function THEME_breadcrumb($variables)
dan kemudian baca variabelnya.
... juga tuhan saya, saya benci remah roti. sekali.
sumber
Jika Anda hanya perlu mengubah remah roti pada halaman tertentu, mungkin solusi berikut dapat membantu Anda. Contoh ini memperbarui remah roti untuk formulir edit.
Cara Drupal lain adalah untuk pengguna
hook_menu_breadcrumb_alter
tetapi pastikan untuk menamainyaYOUR_MODULE_menu_breadcrumb_alter
dan menghapus cache setelah menambahkan fungsi.Atau juga
theme_breadcrumb
merupakan cara Drupal untuk memperbarui remah roti tetapi dalam kait ini Anda hanya harus mengubah markah roti, bukan tautan.sumber
yang
THEME_NAME_breadcrumb
tidak bekerja untuk saya. Namun, saya berhasil mengganti remah roti dengan fungsi ini:kredit jatuh ke: /programming/10087168/how-to-add-breadcrumb
sumber
function MODULE_menu_breadcrumb_alter (& $ active_trail, $ item) {
}
kode sebanyak ini cukup untuk memodifikasi url breadcrumb.
sumber