【发布时间】:2016-04-26 13:32:35
【问题描述】:
如何在 drupal 8 中隐藏匿名用户的菜单项? 由于 hook_translated_link_alter 已被弃用,哪些钩子可用于执行任务?
【问题讨论】:
标签: drupal-8 menu-items
如何在 drupal 8 中隐藏匿名用户的菜单项? 由于 hook_translated_link_alter 已被弃用,哪些钩子可用于执行任务?
【问题讨论】:
标签: drupal-8 menu-items
您需要覆盖/扩展 DefaultMenuLinkTreeManipulators 类以提供角色作为对菜单项的访问权限。
命名空间是Drupal\Core\Menu\DefaultMenuLinkTreeManipulators;
或
您可以使用menu per role 模块来设置基于角色的菜单项访问权限
【讨论】:
您的菜单项将有一个绑定到它们的特定路径。在您的 .routing.yml 文件中,您可以设置路由的权限,该权限将被传递到链接。
快速示例:假设我们创建了一个指向以下路由的链接:
profile.page:
path: 'profile'
defaults:
_controller: '\Drupal\profile\Controller\ProfileController::profile'
_title: 'Profile'
requirements:
_permission: 'access profile content'
在这里,“访问个人资料内容”是一个自定义权限,但它是什么权限并不重要。您的链接也将获得此权限,当用户无权访问链接背后的内容时,Drupal 将隐藏您的链接。
希望对你有帮助
【讨论】: