Dari drupal.org pada / node / 2122241:
Mengubah tautan menu dan menambahkan tautan menu secara dinamis
Item menu yang ditentukan secara statis dapat diubah menggunakan hook_menu_links_discovered_alter () (tetapi perhatikan tidak ada hook_menu_link_discovered (), tautan menu dibuat dari file .yml seperti dijelaskan di atas). Hook ini juga dapat digunakan untuk menambahkan item menu dinamis baru.
Lebih sering, Anda mungkin ingin menggunakan kelas deriver untuk menambahkan plugin tautan menu baru. Sebagai contoh, tautan menu yang disediakan Views ditambahkan dalam views.links.menu.yml, yang menentukan kelas deriver \ Drupal \ views \ Plugin \ Derivative \ ViewsMenuLink.
Terakhir, Anda dapat menggunakan pengelola plugin secara langsung untuk menambah, memperbarui, dan menghapus definisi.
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
Drupal 8
Di Drupal 8, Anda dapat mendukung izin dinamis dengan merujuk fungsi yang secara dinamis akan menentukan izin tersebut. Callback ini mendefinisikan izin untuk modul filter inti.
// in filter.permissions.yml
permission_callbacks:
- Drupal\filter\FilterPermissions::permissions
// in FilterPermissions.php
class FilterPermissions {
public function permissions() {
$permissions = [];
// Generate permissions for each text format. Warn the administrator that any
// of them are potentially unsafe.
/** @var \Drupal\filter\FilterFormatInterface[] $formats */
$formats = $this->entityManager->getStorage('filter_format')->loadByProperties(['status' => TRUE]);
uasort($formats, 'Drupal\Core\Config\Entity\ConfigEntityBase::sort');
foreach ($formats as $format) {
if ($permission = $format->getPermissionName()) {
$permissions[$permission] = [
'title' => $this->t('Use the @label text format', ['@url' => $format->url(), '@label' => $format->label()]),
'description' => String::placeholder($this->t('Warning: This permission may have security implications depending on how the text format is configured.')),
];
}
}
return $permissions;
}
}
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.
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.