logo

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

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

演示 EBT 模块 下载 EBT 模块

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

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

演示 EPT 模块 滚动

滚动
30/09/2025, by Ivan

Views 模块在 Drupal 生态系统中被广泛使用。内容列表、表格、区块、幻灯片、数据导出 —— 这些内容通常都是通过 Views 来显示的。如果你使用内容类型(Content types)、区块类型(Block types)或其他实体类型(Entity types),那么 Views 已经自动与它们集成,你可以直接用 Views 来展示你的内容。但对于你自定义的模块,如果你使用了单独的自定义数据库表(通过 hook_schema() 创建),那么你需要为 Views 编写集成代码,才能在 Views 模块的 UI 中展示你模块的数据。

让我们看看模块 Did this help 与 Views 的集成:

https://www.drupal.org/project/did_this_help

该模块创建了自己的数据库表来存储数据。在这张表中有字符串、ID、日期,因此我们需要为 Views 集成定义不同的处理器(handlers):

29/09/2025, by Ivan

有些人认为 Drupal 是一个复杂的平台,很难安装和设置。但 Drupal 已经持续活跃开发超过 20 年,在这段时间里,所有安装和设置 Drupal 的方法都在不断改进。现在你可以在虚拟环境中通过 Docker 安装 Drupal。让我们使用 Lando,在 10 分钟内安装 Drupal。

首先我们需要安装一个运行 Drupal 的 Web 服务器。但如果从零搭建 Web 服务器(拆分成不同的组件和包),会花费超过 10 分钟的时间,所以我们将使用一个开箱即用的解决方案——解压带有 Docker 的虚拟机。这个虚拟机的运行速度和本地 Web 服务器一样快,没有虚拟化的性能损失。

要在虚拟环境中设置 Web 服务器,我们需要使用 Docker 和 Lando。首先安装 Docker。

安装 Docker

你需要从官方网站下载 Docker:

https://www.docker.com/

29/09/2025, by Ivan

当我们使用 Drupal 并且需要在自定义模块中使用贡献模块或核心模块的代码时,我们会使用 hook(钩子)和 services(服务)。我们已经在这篇文章中使用过钩子:

12.11.3. 用于处理 Entity 的钩子。

现在让我们来了解一下 services。Service 是一个 PHP 对象。因此,当你在自定义模块中创建一个新的 PHP 类时,最好立即将其设计为 service,这样以后你的代码就可以在其他模块中以标准方式使用。

Drupal 将所有的 services 收集到一个 PHP 对象 Service Container 中,所以 Drupal 会在一个地方保存关于所有可用和已使用的服务的信息。你可以调用这个对象并查看有哪些服务正在使用:

29/09/2025, by Ivan

在之前的文章中,我们已经讨论了什么是 Services、Dependency Injection (DI),以及如何在控制器、区块和表单中使用它们:

12.15. Services 和 Dependency Injection
12.15.1. 控制器中的 Dependency Injection
12.15.2. 区块中的 Dependency Injection
12.15.3. BaseForm 中的 Dependencies Injection

在本文中,我们将展示如何通过 DI 向继承自 ConfigFormBase 的配置表单类中添加服务:

29/09/2025, by Ivan

欢迎来到 EBT 文档。Extra Block Types (EBT) 模块是一系列受 Guttenberg、Elementor、WP Bakery 页面构建器启发的 Drupal 模块。结合 Layout Builder,这些模块让构建落地页变得毫不费力。

作为 Drupal 网站构建者或开发者,您知道区块是任何网站的基本构建单元。然而,Drupal 提供的标准区块类型在创建自定义布局和设计时可能有限。
Extra Block Types (EBT) 是一组 Drupal 模块,它们通过提供新的强大区块类型来扩展 Drupal 区块系统的能力。使用 EBT,您可以创建包含丰富内容、动态布局和高级功能的自定义区块,否则这些功能需要自定义代码或多个模块才能实现。

以下是可用的 EBT 模块列表: