3.6. Webforms —— 一个强大的表单构建器
在本视频中,我们将学习如何使用功能强大的表单构建器 Webform。首先进入模块页面。要创建 Webform,我们需要启用 Webform 和 Webform UI 模块。如果你希望将 Webform 作为节点页面显示,还需要启用 Webform Node 模块。
在 Drupal 6 和 7 中,Webform 是通过节点页面运行的 —— 表单附加在 Webform 内容类型上。而从 Drupal 8 开始,每个 Webform 都自带页面,不再需要单独的节点页面,同时表单也可以作为区块放置在任意页面上。
启用 Webform 模块后,我们就可以开始创建新的 Webform。
如果启用了 Webform Node 模块,创建 Webform 的链接位于 内容 → 添加内容 → Webform。在创建页面时,添加标题和描述。还可以在“Form”字段中选择一个已有的表单,或者留空以创建新表单。
/node/add/webform
要创建表单本身,请进入 结构 → Webforms 菜单,然后你可以将其嵌入节点页面。
当前我们只有一个联系表单,让我们再添加一个。虽然可以使用默认表单,但为了学习 Webform 字段的工作方式,我们将创建一个新表单:
/admin/structure/webform
现在我们可以为表单添加新元素:
文本字段 – 我们的名字(Our Name)
电话字段 – 电话(Phone)
Webform 模块使用 Drupal 的 Fields API,因此你可以使用网站上可用于任何实体的字段 —— 无论是节点、区块、分类术语还是其他实体。
如果进入任意字段的编辑界面,你会发现 Webform 提供了大量设置。你可以设置依赖字段,即当某个字段具有特定值时显示另一个字段。例如,在联系表单中,若用户选择“企业”或“个人”,可分别显示不同的字段。
还可以使用正则表达式进行验证,也可以通过自定义模块中的 hook_form_alter()
以编程方式添加验证。
你可以为字段设置 CSS 类。例如,如果你使用 Bootstrap 布局,可以为字段包装器添加列类,使字段按列排列,例如 col-md-6
可实现两列布局。
在“Form display”部分,可以设置是否显示字段标签、在字段前后添加说明、设置占位符(placeholder),以及定义字段的最小和最大长度。
我们还需要添加一个 Email 字段以便回复发送者,以及一个 Text area 字段用于输入消息内容。
Webform 设置
你可以设置一条消息,在表单无法提交时显示。
可以覆盖提交按钮(Submit)的文本,并为表单添加布局类。
多步表单设置(Wizard settings)
在多页表单中,可以修改“下一步 / 上一步”按钮的标签。
其他设置说明
可以设置提交后的感谢信息(Thank you message)。
可以将 Webform 作为区块显示在页面左侧栏。
Webform 通知设置
你可以配置在用户提交表单后发送通知邮件给管理员或指定收件人。