0

如何在 drupal 8 中隐藏匿名用户的菜单项?由于 hook_translated_link_alter 已被弃用,哪些钩子可用于执行任务?

4

2 回答 2

2

您需要覆盖/扩展 DefaultMenuLinkTreeManipulators 类以提供角色作为对菜单项的访问。命名空间是Drupal\Core\Menu\DefaultMenuLinkTreeManipulators;

或者

您可以使用每个角色模块的菜单来设置对菜单项的基于角色的访问

于 2018-10-18T11:43:05.630 回答
1

您的菜单项将有一个绑定到它们的特定路线。在您的 .routing.yml 文件中,您可以设置路由的权限,该权限将被传递到链接。

快速示例:假设我们创建了一个指向以下路由的链接:

 profile.page:
  path: 'profile'
  defaults:
    _controller: '\Drupal\profile\Controller\ProfileController::profile'
    _title: 'Profile'
  requirements:
    _permission: 'access profile content'

在这里,“访问个人资料内容”是一个自定义权限,但它是什么权限并不重要。您的链接也将获得此权限,并且当用户无权访问链接背后的内容时,Drupal 将隐藏您的链接。

希望这可以帮助

于 2016-04-29T12:13:42.630 回答