Grav - Formes

Vous pouvez créer un formulaire en utilisant le formplugin disponible dans ce lien . Recherchez le plugin de formulaire et installez-le dans votre dossier Grav.

Vous pouvez également installer ce plugin en utilisant la commande $ bin/gpm install Form. Accédez à votre dossier racine de Grav et tapez cette commande. Il téléchargera automatiquement le plugin de formulaire et installera les dépendances nécessaires.

Créer un formulaire simple

Vous pouvez créer un formulaire simple qui peut être défini dans la page frontmatter YAML. Voici un exemple de formulaire -

---
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
---

Le code ci-dessus montre une page de formulaire simple avec des champs de nom, e-mail, message et Captcha. Lorsque vous soumettez les informations après avoir rempli le formulaire, le formulaire sera traité en ajoutantprocess sur le frontmatter YAML comme indiqué dans le code.

le process champ utilise les informations suivantes -

  • le email L'option utilise deux champs tels que from champ spécifiez l'expéditeur de l'e-mail et to champ spécifier le destinataire du courrier.

  • le subject les usages [feedback][entered mail] option dans laquelle l'e-mail est envoyé à l'e-mail saisi.

  • Le corps de l'e-mail est spécifié dans le forms/data.html.twig fichier présent dans le dossier du thème.

  • Les données d'entrée du formulaire sont stockées sous le user/datadossier. Le modèle est défini dans leforms/data.txt.twig fichier présent dans le dossier du thème.

  • Créez une sous-page sous le thankyou/ sous-dossier qui sera redirigé vers cette page lorsqu'un utilisateur soumet le formulaire.

Vous pouvez utiliser certains champs avec le plugin de formulaire comme indiqué dans le tableau suivant -

N ° Sr. Champ et description
1

Captcha

C'est un champ antispam qui est utilisé en informatique pour déterminer si l'utilisateur est humain ou non.

2

Checkbox

Il affiche une simple case à cocher.

3

Checkboxes

Il affiche plusieurs cases à cocher.

4

Date and Datetime

Les deux champs sont utilisés pour afficher respectivement la date et la date avec l'heure.

5

Email

C'est un champ email avec validation.

6

Hidden

Il spécifie le champ caché.

sept

Password

Il spécifie le champ du mot de passe.

8

Radio

Il affiche les boutons radio simples.

9

Select

Il fournit un champ de sélection.

dix

Spacer

Il permet d'ajouter un titre, du texte ou une ligne horizontale au formulaire.

11

Text

Il affiche un champ de texte simple.

12

Textarea

Il affiche un champ de zone de texte simple.

13

Display

Il affiche le champ de texte ou d'instruction, pas le champ de saisie.

Paramètre de champs

Chaque champ accepte les paramètres suivants qui peuvent être utilisés pour personnaliser l'apparence du formulaire.

N ° Sr. Paramètre et description
1

label

Il définit le champ d'étiquette.

2

validate.required

Cela rend l'élément requis.

3

validate.pattern

Il spécifie le modèle de validation.

4

validate.message

Il affiche le message lorsque la validation échoue.

5

type

Il définit le type de champ.

6

default

Il définit le type de champ par défaut.

sept

size

Il affiche la taille du champ telle que grande, x-petite, moyenne, longue, petite.

8

name

Il définit le nom du champ.

9

classes

Il utilise une chaîne avec des classes css.

dix

id

Il définit l'identifiant du champ.

11

style

Il spécifie le style du champ.

12

title

Il définit le titre du champ.

13

disabled

Il détermine si le champ est ou non dans un état désactivé.

14

placeholder

Il s'agit d'un bref indice qui s'affiche dans le champ de saisie avant que l'utilisateur n'entre une valeur.

15

autofocus

Il spécifie qu'un élément d'entrée doit automatiquement obtenir le focus lorsque la page se charge.

16

novalidate

Il précise que les données du formulaire ne doivent pas être validées lors de leur soumission.

17

readonly

Il détermine le champ comme état en lecture seule.

18

autocomplete

Il affiche les options dans le champ lorsque l'utilisateur commence à taper dans le champ et affiche les valeurs basées sur les valeurs saisies précédemment.

Certains champs contiennent des paramètres spécifiques tels que -

N ° Sr. Paramètre et description
1

date and datetime

Ces champs utilisent validate.min et validate.max pour définir les valeurs minimum et maximum.

2

spacer

Il utilise underline ajouter <hr> balise, ajoute des valeurs de texte en utilisant text et utilise title comme balise <h3>.

3

select

Il utilise multiple paramètre pour ajouter plusieurs valeurs.

4

select and checkboxes

Il utilise options champ pour définir les options disponibles.

5

display

Il utilise contentparamètre pour afficher le contenu. Il définit lemarkdown à true pour afficher le contenu.

6

captcha

Il utilise recatpcha_site_key et recaptcha_not_validated paramètres.

Remarque sur le captcha

Nous avons le code sur les informations captcha sous le champ appelé g-recaptcha-response comme indiqué ci-dessous -

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

Le reCaptcha est utilisé pour protéger votre site Web contre le spam et les abus. Il utilise lerecatpcha_site_keyoption et affiche le widget sur votre site. Pour utiliser reCaptcha, reportez-vous simplement à la documentation reCaptcha . Si reCaptcha est incorrect, il affichera un message en utilisant lerecaptcha_not_validated option.

Actions de formulaire

Email

Vous pouvez envoyer un e-mail avec des options spécifiques sous le process champ comme indiqué ci-dessous -

- email:
	from: "{{ config.plugins.email.from }}"
	to: "{{ config.plugins.email.to }}"
	subject: "Contact by {{ form.value.name|e }}"
	body: "{% include 'forms/data.html.twig' %}"

Il utilise l'option email qui comprend deux champs; lafrom champ spécifie l'expéditeur de l'adresse e-mail et le toLe champ spécifie le destinataire de l'adresse e-mail en utilisant la configuration du plugin Email. Le champ email utilise égalementsubject option dans laquelle un e-mail est envoyé à l'e-mail saisi avec le sujet [Contact par] [nom saisi] et le corps de l'e-mail est défini dans le forms/data.html.twig fichier du thème.

Redirection vers une autre page

Vous pouvez rediriger vers une autre page en utilisant message et display options définies sous process champ.

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

le messageL'option définit un message qui doit être affiché lorsqu'un utilisateur clique sur le bouton d'envoi. Lorsqu'un utilisateur soumet le formulaire, il doit être redirigé vers une autre page. Créez une sous-page sous lethankyou sous-dossier où votre form.mdle fichier est stocké. Après avoir soumis le formulaire, il sera redirigé sur la page et affichera le message ci-dessus.

La sous-page appelée thankyou/formdata.md aura le contenu suivant.

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

## Your email has been sent!

Lorsque vous soumettez le formulaire, le plugin enverra un e-mail à l'utilisateur et les données sont enregistrées sous le data/folder.

sauver

Il est utilisé pour enregistrer les données dans un fichier qui est enregistré sous le user/data dossier.

Par exemple -

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

Les données seront stockées au format texte avec l'extension txt. Le corps est pris dutemplates/forms/data.html.twig fichier du thème.

L'écran suivant montre un formulaire simple -