- EBT Blocks 🧱
- EPT Paragraphs 🆕
-
Resources & Support
- What's New
- 事件
- 联络表
额外区块类型 (EBT) - 全新的布局构建器体验❗
滚动
提交区块配置表单
04/10/2025, by Ivan
Menu
- 理解 Drupal
- Drupal 系统要求
- 安装 Drupal 8
- 更新 Drupal 8
- Drupal 8 网站管理
- Drupal 8 模块
- Drupal 模块比较
- Drupal 主题
- Drupal 字段类型
- 配置管理
- Drupal 多站点
- 无障碍功能
- Drupal 8 समस्या निवारण
-
为 Drupal 创建模块
- 入门指南 - 参考信息(Drupal 8)
- 准备模块框架
- Drupal 8 模块的命名与放置规则
- 通过 .info.yml 文件让 Drupal 8 知道你的模块
- 添加 composer.json 文件
- 通过 Drupal 模块在页面上输出 “Hello World”
- 添加主控制器
- 添加路由文件
- 添加菜单链接
- 继续前进
- 添加默认配置
- 在你的 Drupal 8 模块中启用默认配置
- Drupal 8 基础模块构建实用指南
- Drupal 模块的基本结构
- 配置表单 Drupal
- 在 Drupal 8 中定义和使用你自己的配置
- 在 Drupal 模块中以编程方式创建页面
- 在 Drupal 模块中以编程方式创建区块
- 在 Drupal 中创建字段类型、小部件和格式化器
- 事件订阅器 (Event Subscriber) 与 事件调度器 (Event Dispatcher)。Drupal 的事件系统。
- 为 Drupal 创建 Views 显示样式
- 在 Drupal 模块中添加主题化模板
- 在 Drupal 8 模块中添加样式表 (CSS) 和 JavaScript (JS)
- 测试 Drupal 8 模块
- 在 drupal.org 上发布你的模块
- 理解钩子
- Drupal 8 API
- Drupal 8 主题化
- 升级到 Drupal 8
在 HelloBlock 类中添加以下方法。在本例中,它位于文件 src/Plugin/Block/HelloBlock.php
中。但随着你逐渐以更面向对象 (OOP) 的方式思考,它在文件结构中的物理位置并不像命名空间那样重要。作为一个聪明的面向对象程序员,你会让这两者紧密对齐。不过请注意,命名空间通常与模块文件夹名以及我们之前讨论过的模块机器名非常相似,这一点稍后当你需要以编程方式与模块代码交互时会很重要。
/** * {@inheritdoc} */ public function blockSubmit($form, FormStateInterface $form_state) { $this->configuration['hello_block_name'] = $form_state->getValue('hello_block_name'); }
如果你在表单元素外面包裹了一个 fieldset,那么在调用 getValue()
时需要传递一个数组,而不是仅仅传递字段名。这里 myfieldset
是包裹了 hello_block_name
字段的字段集。
$this->configuration['hello_block_name'] = $form_state->getValue(['myfieldset', 'hello_block_name']);
添加这段代码意味着表单将被处理,并且表单输入会保存到该区块实例的配置中,而不会影响其他区块实例。然而,该区块仍然没有使用这些配置更改的结果。这将在本教程的下一部分中介绍。