Grav - Forms

您可以使用此链接<中提供的表单插件创建表单/A>.搜索表单插件并将其安装在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
---

上面的代码显示了包含姓名,电子邮件,消息和Captcha字段的简单表单页面.填写表格后提交信息时,表格将通过将处理字段添加到YAML前端来处理,如代码所示.

进程字段使用以下信息 :

  • 电子邮件选项使用两个来自字段等字段指定电子邮件的发件人,字段指定邮件的收件人.

  • 主题使用 [反馈] [已输入邮件] 选项,其中将电子邮件发送到输入的电子邮件.

  • 电子邮件的正文在 forms/data.html.twig 文件中指定,该文件存在于主题文件夹中.

  • 表单输入数据存储在 user/data 文件夹下.模板在 forms/data.txt.twig 文件中定义,该文件存在于主题文件夹中.

  • 创建子页面在 thankyou/子文件夹下,当用户提交表单时,该子文件夹将被重定向到该页面.

你可以使用表格插件中的一些字段,如下表所示 :

Sr.No.Field&描述
1

Captcha

这是一个反垃圾邮件字段,用于计算以确定用户是否为人.

2

复选框

它显示一个简单的复选框.

3

复选框

它显示多个复选框.

4

日期和日期时间

这两个字段分别用于显示日期和日期以及时间.

5

电子邮件

这是一个带验证的电子邮件字段.

6

隐藏

它指定隐藏字段.

7

密码

它指定了密码字段.

8

广播

它显示简单的单选按钮.

9

选择

它提供了选择字段.

10

Spacer

它允许在表格中添加标题,文字或水平线.

11

文字

它显示简单的文本字段.

12

Textarea

它显示简单文本区域.

13

显示

它显示文本或指令字段,而不是输入字段.

字段参数

每一个字段接受以下参数,可用于自定义表单中的外观.

Sr.No.参数&描述
1

标签

它定义标签字段.

2

validate.required

它使元素成为必需元素.

3

validate.pattern

它指定验证模式.

4

validate.message

验证失败时显示消息.

5

type

它定义了字段类型.

6

默认

它定义了默认字段类型.

7

size

它显示字段大小,如大,x小,中,长,小.

8

名称

它定义了字段名称.

9

它使用带有css类的字符串.

10

id

它定义了字段ID.

> 14

占位符

这是一个简短的提示,显示在输入字段之前用户输入一个值.

15

自动对焦

它指定输入元素应自动获得焦点当页面加载时.

16

novalidate

它指定在提交时不应验证表单数据d.

17

readonly

它将字段确定为只读状态.

18

自动完成

当用户开始在字段中输入并显示基于先前输入的值时,它会显示字段中的选项值.

某些字段包含特定参数,例如 :

Sr.No.参数&描述
1

日期和日期时间

这些字段使用 validate.min validate.max 设置最小值和最大值.

2

spacer

它使用下划线添加< hr> 标签,使用文字添加文字值,并使用标题作为< h3>标签.

3

选择

它使用多个参数添加多个值.

4

选择和复选框

它使用选项字段来设置可用选项.

5

显示

它使用内容参数显示内容.它将 markdown 设置为true以显示内容.

6

captcha

它使用 recatpcha_site_key recaptcha_not_validated 参数.

关于Captcha的注释

我们在名为 g-recaptcha-response 的字段下有验证码信息的代码,如下所示 :

 
  -  name:g-recaptcha-response 
 label:Captcha 
 type:captcha 
 recatpcha_site_key:6LelOg4TAAAAALAt1CjjjVMxFLKY8rrnednYVbr8 
 recaptcha_not_validated:'验证码无效!'
验证:
必填:true

reCaptcha用于保护您的网站免受垃圾邮件和滥用.它使用 recatpcha_site_key 选项并在您的网站上显示小部件.要使用reCaptcha,请参阅 reCaptcha文档.如果reCaptcha不正确,那么它将使用 recaptcha_not_validated 选项显示消息.

表单操作

电子邮件

您可以在流程字段下发送包含特定选项的电子邮件,如下所示 :

- name: g-recaptcha-response
   label: Captcha
   type: captcha
   recatpcha_site_key: 6LelOg4TAAAAALAt1CjjjVMxFLKY8rrnednYVbr8
   recaptcha_not_validated: 'Captcha not valid!'
   validate:
		required: true

它使用包含两个字段的电子邮件选项; 来自字段指定电子邮件地址的发件人,字段使用电子邮件插件配置指定电子邮件地址的发件人.电子邮件字段还使用主题选项,其中将电子邮件发送到通过主题[联系方式] [输入的名称]输入的电子邮件,并且电子邮件的正文在表单/中定义data.html.twig 主题文件.

重定向到其他页面

您可以使用<b重定向到另一个页面流程字段下定义的>消息和显示选项.

process:
   - message: Thank you for getting in touch!
   - display: thankyou

消息选项设置一条消息,当用户单击提交按钮时应显示该消息.当用户提交表单时,应将其重定向到另一个页面.在 thankyou 子文件夹下创建一个子页面,其中存储了 form.md 文件.提交表单后,它将被重定向到页面上并显示上述消息.

名为 thankyou/formdata.md 的子页面将包含以下内容.

---
title: Email sent
cache_enable: false
process:
   twig: true
---

## Your email has been sent!

当您提交表单时,插件将向用户发送电子邮件,数据将保存在数据/文件夹下.

保存

它用于将数据保存到保存在用户/数据文件夹下的文件中.

例如 :

process:
   - save:
      fileprefix: contact-
      dateformat: Ymd-His-u
      extension: txt
      body: "{% include 'forms/data.txt.twig' %}"

数据将以文本格式存储,扩展名为txt.正文取自主题的 templates/forms/data.html.twig 文件.

以下屏幕显示简单形式 :

Grav Forms