Grav - Formlar

Kullanarak bir form oluşturabilirsiniz. formeklenti bu bağlantıda mevcuttur . Form eklentisini arayın ve Grav klasörünüze yükleyin.

Bu eklentiyi şu komutu kullanarak da yükleyebilirsiniz: $ bin/gpm install Form. Grav kök klasörünüze gidin ve bu komutu yazın. Form eklentisini otomatik olarak indirecek ve gerekli bağımlılıkları kuracaktır.

Basit Bir Form Oluşturmak

YAML frontmatter sayfasında tanımlanabilen basit bir form oluşturabilirsiniz. Aşağıdaki bir form örneğidir -

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

Yukarıdaki kod, ad, e-posta, mesaj ve Captcha alanlarını içeren basit form sayfasını gösterir. Formu doldurduktan sonra bilgileri gönderdiğinizde, form ekleyerek işleyecektir.process kodda gösterildiği gibi YAML ön maddesi alanına.

process alanı aşağıdaki bilgileri kullanır -

  • email seçeneği gibi iki alan kullanır from alanı e-postanın göndericisini belirtir ve to alanı postanın alıcısını belirtir.

  • subject kullanır [feedback][entered mail] E-postanın girilen e-postaya gönderileceği seçenek.

  • E-postanın gövdesi, forms/data.html.twig tema klasöründe bulunan dosya.

  • Form giriş verileri, user/dataKlasör. Şablon,forms/data.txt.twig tema klasöründe bulunan dosya.

  • Altında bir alt sayfa oluşturun thankyou/ Bir kullanıcı formu gönderdiğinde o sayfaya yeniden yönlendirilecek olan alt klasör.

Aşağıdaki tabloda gösterildiği gibi, form eklentisiyle bazı alanları kullanabilirsiniz -

Sr.No. Alan tasviri
1

Captcha

Kullanıcının insan olup olmadığını belirlemek için hesaplamada kullanılan bir antispam alanıdır.

2

Checkbox

Basit bir onay kutusu görüntüler.

3

Checkboxes

Birden çok onay kutusu görüntüler.

4

Date and Datetime

Her iki alan da tarih ve tarihi zamanla birlikte görüntülemek için kullanılır.

5

Email

Doğrulamalı bir e-posta alanıdır.

6

Hidden

Gizli alanı belirtir.

7

Password

Şifre alanını belirtir.

8

Radio

Basit radyo düğmelerini görüntüler.

9

Select

Seçme alanı sağlar.

10

Spacer

Forma başlık, metin veya yatay çizgi eklemeye izin verir.

11

Text

Basit metin alanını görüntüler.

12

Textarea

Basit metin alanı alanını görüntüler.

13

Display

Giriş alanını değil, metni veya talimat alanını görüntüler.

Alanlar Parametresi

Her alan, formdaki görünümü özelleştirmek için kullanılabilecek aşağıdaki parametreleri kabul eder.

Sr.No. Parametre ve Açıklama
1

label

Etiket alanını tanımlar.

2

validate.required

Elemanı gerekli kılar.

3

validate.pattern

Doğrulama modelini belirtir.

4

validate.message

Doğrulama başarısız olduğunda mesajı görüntüler.

5

type

Alan türünü tanımlar.

6

default

Varsayılan alan türünü tanımlar.

7

size

Büyük, x-küçük, orta, uzun, küçük gibi alan boyutunu görüntüler.

8

name

Alan adını tanımlar.

9

classes

Css sınıfları ile string kullanır.

10

id

Alan kimliğini tanımlar.

11

style

Alanın stilini belirtir.

12

title

Alanın başlığını tanımlar.

13

disabled

Alanın devre dışı durumda olup olmadığını belirler.

14

placeholder

Kullanıcı bir değer girmeden önce giriş alanında görüntülenen kısa bir ipucudur.

15

autofocus

Sayfa yüklendiğinde bir giriş öğesinin otomatik olarak odaklanması gerektiğini belirtir.

16

novalidate

Form verilerinin gönderildiğinde doğrulanmaması gerektiğini belirtir.

17

readonly

Alanı salt okunur durum olarak belirler.

18

autocomplete

Kullanıcı alana yazmaya başladığında alandaki seçenekleri görüntüler ve değerleri daha önce yazılan değerlere göre görüntüler.

Bazı alanlar, aşağıdakiler gibi belirli parametreler içerir:

Sr.No. Parametre ve Açıklama
1

date and datetime

Bu alanlar kullanır validate.min ve validate.max minimum ve maksimum değerleri ayarlamak için.

2

spacer

Kullanır underline eklemek <hr> etiket, kullanarak metin değerleri ekler text ve kullanır title <h3> etiketi olarak.

3

select

Kullanır multiple birden çok değer eklemek için parametre.

4

select and checkboxes

Kullanır options mevcut seçenekleri ayarlamak için alan.

5

display

Kullanır contentiçeriği görüntülemek için parametre. Ayarlarmarkdown içeriği göstermek için doğru.

6

captcha

Kullanır recatpcha_site_key ve recaptcha_not_validated parametreleri.

Captcha ile ilgili not

Adlı alanın altında captcha bilgisi kodumuz var g-recaptcha-response aşağıda gösterildiği gibi -

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

ReCaptcha, web sitenizi spam ve kötüye kullanımdan korumak için kullanılır. Kullanırrecatpcha_site_keyseçeneği ve widget'ı sitenizde görüntüler. ReCaptcha'yı kullanmak için reCaptcha belgelerine başvurmanız yeterlidir . ReCaptcha yanlışsa, bunu kullanarak mesaj gösterecektir.recaptcha_not_validated seçeneği.

Form Eylemleri

Eposta

Altından belirli seçenekler içeren bir e-posta gönderebilirsiniz. process aşağıda gösterildiği gibi alan -

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

İki alan içeren e-posta seçeneğini kullanır; from alanı, e-posta adresinin göndericisini ve toalanı, E-posta eklentisi yapılandırmasını kullanarak e-posta adresinin alıcısını belirtir. E-posta alanı ayrıca kullanırsubject konuyla girilen e-postaya bir e-postanın gönderildiği seçenek [İletişim kuran] [ad girildi] ve e-posta gövdesi forms/data.html.twig temanın dosyası.

Diğer Sayfaya Yönlendirme

Kullanarak başka bir sayfaya yönlendirebilirsiniz message ve display altında tanımlanan seçenekler process alan.

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

messageseçeneği, kullanıcı gönder düğmesine tıkladığında görüntülenecek bir mesaj ayarlar. Bir kullanıcı formu gönderdiğinde, başka bir sayfaya yönlendirilmelidir. Altında bir alt sayfa oluşturunthankyou alt klasör nerede form.mddosya saklanır. Form gönderildikten sonra sayfaya yönlendirilecek ve yukarıdaki mesaj görüntülenecektir.

Alt sayfa aradı thankyou/formdata.md aşağıdaki içeriğe sahip olacak.

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

## Your email has been sent!

Formu gönderdiğinizde, eklenti kullanıcıya bir e-posta gönderecek ve veriler, data/folder.

Kayıt etmek

Verileri, altında kaydedilen bir dosyaya kaydetmek için kullanılır. user/data Klasör.

Örneğin -

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

Veriler, txt uzantısıyla metin biçiminde saklanacaktır. Vücut,templates/forms/data.html.twig temanın dosyası.

Aşağıdaki ekran basit bir form göstermektedir -