logo

额外区块类型 (EBT) - 全新的布局构建器体验❗

额外区块类型 (EBT) - 样式化、可定制的区块类型:幻灯片、标签页、卡片、手风琴等更多类型。内置背景、DOM Box、JavaScript 插件的设置。立即体验布局构建的未来。

演示 EBT 模块 下载 EBT 模块

❗额外段落类型 (EPT) - 全新的 Paragraphs 体验

额外段落类型 (EPT) - 类似的基于 Paragraph 的模块集合。

演示 EPT 模块 滚动

滚动

9.4. 为高级账户创建页面。

17/10/2025, by Ivan

在本课中,我们将扩展模块的功能,创建仅对注册用户或具有特定角色的用户可用的内容。

代码示例可以在GitHub上查看:

https://github.com/levmyshkin/drupalbook8

首先,在我们的drupalbook.permissions.yml模块文件夹中添加一个新的YML文件:

access premium pages:
  title: '访问高级页面'
  description: '您页面的自定义权限。'
  restrict access: TRUE

现在,前往访问权限页面并为所需角色设置对高级内容的访问权限,我将为注册用户设置:

/admin/people/permissions

permission

现在,在drupalbook.routing.yml中创建一个新路由,在其中指明我们的新权限和一个用于显示内容的新方法:

drupalbook.private_content:
   path: '/private-page'
   defaults:
     _controller: '\Drupal\drupalbook\Controller\FirstPageController::privateContent'
     _title: '私有内容'
   requirements:
     _permission: '访问高级页面'

添加新路由后,需要清除缓存。

我们还需要将privateContent()方法添加到我们的FirstPageController类中:

/**
 * 返回一个私有页面。
 *
 * @return array
 *   一个简单的可渲染数组。
 */
public function privateContent() {
  $element = array(
    '#markup' => '私有内容',
  );
  return $element;
}

现在,您可以清除缓存并验证我们的页面对未注册用户不可访问。

drupalbook

代码示例可以在GitHub上查看:

https://github.com/levmyshkin/drupalbook8