Grav - 表格
您可以使用此链接中提供的表单插件创建表单。搜索表单插件并将其安装在您的 Grav 文件夹中。
您还可以使用命令$ bin/gpm install Form安装此插件。导航到 Grav 的根文件夹并键入此命令。它将自动下载表单插件并安装必要的依赖项。
创建一个简单的表单
您可以创建一个简单的表单,可以在页面 YAML frontmatter 中定义该表单。以下是表格的示例 -
--- title: Contact Form form: name: contact fields: - name: name label: Name placeholder: Enter your name autofocus: on autocomplete: on type: text validate: required: true - name: email label: Email placeholder: Enter your email address type: email validate: required: true - name: message label: Message placeholder: Enter your message type: textarea validate: required: true - name: g-recaptcha-response label: Captcha type: captcha recatpcha_site_key: 6LelOg4TAAAAALAt1CjjjVMxFLKY8rrnednYVbr8 recaptcha_not_validated: 'Captcha not valid!' validate: required: true buttons: - type: submit value: Submit - type: reset value: Reset process: - email: subject: "[Site Contact Form] {{ form.value.name|e }}" body: "{% include 'forms/data.html.twig' %}" - save: fileprefix: contact- dateformat: Ymd-His-u extension: txt body: "{% include 'forms/data.txt.twig' %}" - message: Thank you for getting in touch! - display: thankyou ---
上面的代码显示了带有姓名、电子邮件、消息和验证码字段的简单表单页面。当您填写表单后提交信息时,表单将通过向 YAML frontmatter 添加process字段进行处理,如代码所示。
流程字段使用以下信息 -
电子邮件选项使用两个字段,例如from字段指定电子邮件的发件人,to字段指定邮件的收件人。
主题使用[反馈][输入的邮件]选项,将电子邮件发送到输入的电子邮件。
电子邮件的正文在主题文件夹中的forms/data.html.twig文件中指定。
表单输入数据存储在user/data文件夹下。该模板在主题文件夹中的forms/data.txt.twig文件中定义。
在thankyou/子文件夹下创建一个子页面,当用户提交表单时,该子页面将被重定向到该页面。
您可以在表单插件中使用一些字段,如下表所示 -
先生。 | 字段和描述 |
---|---|
1 | 验证码 它是一个反垃圾邮件字段,用于计算以确定用户是否是人类。 |
2 | 复选框 它显示一个简单的复选框。 |
3 | 复选框 它显示多个复选框。 |
4 | 日期和日期时间 这两个字段分别用于显示日期和日期与时间。 |
5 | 电子邮件 这是一个带有验证功能的电子邮件字段。 |
6 | 隐 它指定隐藏字段。 |
7 | 密码 它指定密码字段。 |
8 | 收音机 它显示简单的单选按钮。 |
9 | 选择 它提供选择字段。 |
10 | 垫片 它允许向表单添加标题、文本或水平线。 |
11 | 文本 它显示简单的文本字段。 |
12 | 文本区 它显示简单的文本区域字段。 |
13 | 展示 它显示文本或指令字段,而不是输入字段。 |
字段参数
每个字段都接受以下参数,这些参数可用于自定义表单中的外观。
先生。 | 参数及说明 |
---|---|
1 | 标签 它定义了标签字段。 |
2 | 验证.必需 它使元素成为必需的。 |
3 | 验证模式 它指定验证模式。 |
4 | 验证消息 当验证失败时它会显示消息。 |
5 | 类型 它定义了字段类型。 |
6 | 默认 它定义默认字段类型。 |
7 | 尺寸 它显示字段大小,例如大、x-小、中、长、小。 |
8 | 姓名 它定义字段名称。 |
9 | 类 它使用带有 css 类的字符串。 |
10 | ID 它定义了字段 ID。 |
11 | 风格 它指定字段的样式。 |
12 | 标题 它定义了字段的标题。 |
13 | 残疾人 它确定该字段是否处于禁用状态。 |
14 | 占位符 它是在用户输入值之前显示在输入字段中的简短提示。 |
15 | 自动对焦 它指定输入元素在页面加载时应自动获得焦点。 |
16 | 不验证 它指定表单数据在提交时不应进行验证。 |
17 号 | 只读 它将字段确定为只读状态。 |
18 | 自动完成 当用户开始在字段中键入时,它会在字段中显示选项,并根据先前键入的值显示值。 |
一些字段包含特定参数,例如 -
先生。 | 参数及说明 |
---|---|
1 | 日期和日期时间 这些字段使用validate.min和validate.max来设置最小值和最大值。 |
2 | 垫片 它使用下划线添加<hr>标签,使用文本添加文本值并使用标题作为 <h3> 标签。 |
3 | 选择 它使用多个参数来添加多个值。 |
4 | 选择和复选框 它使用选项字段来设置可用选项。 |
5 | 展示 它使用content参数来显示内容。它将markdown设置为 true 以显示内容。 |
6 | 验证码 它使用recatpcha_site_key和recaptcha_not_validated参数。 |
关于验证码的注意事项
我们在名为g-recaptcha-response的字段下有有关验证码信息的代码,如下所示 -
- name: g-recaptcha-response label: Captcha type: captcha recatpcha_site_key: 6LelOg4TAAAAALAt1CjjjVMxFLKY8rrnednYVbr8 recaptcha_not_validated: 'Captcha not valid!' validate: required: true
reCaptcha 用于保护您的网站免受垃圾邮件和滥用。它使用recatpcha_site_key选项并在您的站点上显示小部件。要使用 reCaptcha,只需参考reCaptcha 文档。如果 reCaptcha 不正确,它将使用recaptcha_not_validated选项显示消息。
表单操作
电子邮件
您可以在流程字段下发送包含特定选项的电子邮件,如下所示 -
- email: from: "{{ config.plugins.email.from }}" to: "{{ config.plugins.email.to }}" subject: "Contact by {{ form.value.name|e }}" body: "{% include 'forms/data.html.twig' %}"
它使用电子邮件选项,其中包括两个字段;通过使用电子邮件插件配置,from字段指定电子邮件地址的发件人,to字段指定电子邮件地址的收件人。电子邮件字段还使用主题选项,其中电子邮件将发送到主题为[联系人][输入的姓名]输入的电子邮件,并且电子邮件正文在主题的 forms/data.html.twig 文件中定义。
重定向到其他页面
您可以使用流程字段下定义的消息和显示选项重定向到另一个页面。
process: - message: Thank you for getting in touch! - display: thankyou
消息选项设置当用户单击提交按钮时应显示的消息。当用户提交表单时,它应该被重定向到另一个页面。在存储form.md文件的thankyou子文件夹下创建一个子页面。提交表单后,页面将被重定向并显示上述消息。
名为thankyou/formdata.md的子页面将包含以下内容。
--- title: Email sent cache_enable: false process: twig: true --- ## Your email has been sent!
当您提交表单时,插件将向用户发送一封电子邮件,并将数据保存在data/folder下。
节省
它用于将数据保存到保存在用户/数据文件夹下的文件中。
例如 -
process: - save: fileprefix: contact- dateformat: Ymd-His-u extension: txt body: "{% include 'forms/data.txt.twig' %}"
数据将以文本格式存储,扩展名为txt。正文取自主题的templates/forms/data.html.twig文件。
以下屏幕显示了一个简单的表格 -