Saya ingin mengubah tautan menu di Drupal 8. Di Drupal 7 kita bisa mencapai ini menggunakan hook_translated_menu_link_alter()
.
function module_translated_menu_link_alter(&$item, $map) {
global $user;
if (!empty($item['access'])) {
// Administrator will access all menu's.
if (strpos(current_path(), 'admin/structure/menu/manage/' . $item['menu_name']) === 0 && user_access('administer menu')) {
return;
}
// If userid is equal to menu user id.
if ($user->uid == 1) {
$access = 'UNBLOCK';
break;
}
// Block menu.
else {
$access = 'BLOCK';
}
// Access FALSE if Menu not for USER.
if ($access == 'BLOCK') {
$item['access'] = FALSE;
}
}
}
Di Drupal 7 saya menyembunyikan / menonaktifkan menu berdasarkan beberapa kondisi seperti ID pengguna.
Demikian pula, saya ingin mengubah tautan menu di Drupal 8. Bagaimana saya bisa mencapainya?
hook_translated_menu_link_alter() has been replaced by hook_menu_link_load()
, saya tidak tahu apakah itu benar atau salah, saya baru saja menemukan ini. Mungkin Anda bisa tahu. Jika, beri tahu saya juga.Jawaban:
HOOK_link_alter akan menjadi satu D8 yang setara dengan hook_translated_menu_link_alter:
Lihat URL Drupal 8 kelas untuk info API lebih lanjut.
Namun, Anda dapat menggunakan Hook_preprocess_HOOK () seperti:
Hanya memeriksa di
path
atas, tetapi ini menunjukkan Anda dapat menyembunyikan item menu tunggal berdasarkan kriteria tertentu.Untuk pembatasan akses, tergantung pada kebutuhan Anda, Anda mungkin melihat perutean dan izin berdasarkan pada
entity
alih - alih item menu dan biarkan Drupal menangani tampilan item menu.Untuk akses menu berdasarkan peran, lihat modul ini: https://www.drupal.org/project/menu_item_role_access
sumber
hook_link_alter()
tidak dianggap sebagai penggantianhook_translated_menu_link_alter()
karena hanya ada beberapa kunci yang dapat diubah, dan kunci akses bukan salah satunya.Dari drupal.org pada / node / 2122241:
Anda mungkin dapat menggunakan hook_menu_links_discovered_alter untuk skenario Anda.
Sunting: Anda ingin mengedit izin untuk mengakses tautan itu, sehingga secara otomatis tidak muncul di menu.
Baca di drupal.org: / node / 2311427
Anda juga harus membaca artikel ini https://www.lullabot.com/articles/what-happened-to-hook_menu-in-drupal-8 (gulir ke bawah ke "Kontrol Akses" dan "Hook_Menu_Alter").
Saya harap ini membantu.
sumber