Grav-forms
Grav-フォーム
このhttps://getgrav.org/downloads/plugins[link]で利用可能な form プラグインを使用してフォームを作成できます。 フォームプラグインを検索し、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/datal.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フロントマテリアルに process フィールドを追加してフォームが処理されます。
- プロセス*フィールドは次の情報を使用します-
- email オプションは、 from フィールドが電子メールの送信者を指定し、 to フィールドがメールの受信者を指定するなど、2つのフィールドを使用します。
- subject は、入力された電子メールに電子メールが送信される [feedback] [entered mail] オプションを使用します。
- メールの本文は、themeフォルダーにある forms/datal.twig ファイルで指定されます。
- フォーム入力データは user/data フォルダーに保存されます。 テンプレートは、テーマフォルダーにある forms/data.txt.twig ファイルで定義されます。
- thankyou/ サブフォルダーの下に、ユーザーがフォームを送信したときにそのページにリダイレクトされるサブページを作成します。
次の表に示すように、フォームプラグインでいくつかのフィールドを使用できます-
Sr.No. | Field & Description |
---|---|
1 |
Captcha これは、ユーザーが人間であるかどうかを判断するためにコンピューティングで使用されるスパム対策フィールドです。 |
2 |
Checkbox 簡単なチェックボックスが表示されます。 |
3 |
Checkboxes 複数のチェックボックスが表示されます。 |
4 |
Date and Datetime 両方のフィールドを使用して、日付と日付をそれぞれ時間とともに表示します。 |
5 |
これは検証付きの電子メールフィールドです。 |
6 |
Hidden 非表示フィールドを指定します。 |
7 |
Password パスワードフィールドを指定します。 |
8 |
Radio シンプルなラジオボタンが表示されます。 |
9 |
Select 選択フィールドを提供します。 |
10 |
Spacer フォームにタイトル、テキスト、または水平線を追加できます。 |
11 |
Text シンプルなテキストフィールドを表示します。 |
12 |
Textarea シンプルなテキスト領域フィールドを表示します。 |
13 |
Display 入力フィールドではなく、テキストまたは指示フィールドが表示されます。 |
フィールドパラメータ
すべてのフィールドは、フォームの外観をカスタマイズするために使用できる次のパラメーターを受け入れます。
Sr.No. | Parameter & Description |
---|---|
1 |
label ラベルフィールドを定義します。 |
2 |
validate.required 要素が必要になります。 |
3 |
validate.pattern 検証パターンを指定します。 |
4 |
validate.message 検証が失敗すると、メッセージが表示されます。 |
5 |
type フィールドタイプを定義します。 |
6 |
default デフォルトのフィールドタイプを定義します。 |
7 |
size 大、x-小、中、長、小などのフィールドサイズを表示します。 |
8 |
name フィールド名を定義します。 |
9 |
classes CSSクラスで文字列を使用します。 |
10 |
id フィールドIDを定義します。 |
11 |
style フィールドのスタイルを指定します。 |
12 |
title フィールドのタイトルを定義します。 |
13 |
disabled フィールドが無効な状態かどうかを判断します。 |
14 |
placeholder これは、ユーザーが値を入力する前に入力フィールドに表示される短いヒントです。 |
15 |
autofocus これは、ページがロードされるときに入力要素が自動的にフォーカスを取得することを指定します。 |
16 |
novalidate 送信時にフォームデータを検証しないことを指定します。 |
17 |
readonly フィールドを読み取り専用状態として決定します。 |
18 |
autocomplete ユーザーがフィールドへの入力を開始すると、フィールドにオプションが表示され、以前に入力した値に基づいて値が表示されます。 |
一部のフィールドには、次のような特定のパラメーターが含まれています-
Sr.No. | Parameter & Description |
---|---|
1 |
date and datetime これらのフィールドは、 validate.min および validate.max を使用して最小値と最大値を設定します。 |
2 |
spacer アンダーライン*を使用して *<hr> タグを追加し、 text を使用してテキスト値を追加し、 title を<h3>タグとして使用します。 |
3 |
select
|
4 |
select and checkboxes
|
5 |
display
|
6 |
captcha
|
キャプチャに関する注意
以下に示すように、 g-recaptcha-response というフィールドにcaptcha情報のコードがあります-
- name: g-recaptcha-response
label: Captcha
type: captcha
recatpcha_site_key: 6LelOg4TAAAAALAt1CjjjVMxFLKY8rrnednYVbr8
recaptcha_not_validated: 'Captcha not valid!'
validate:
required: true
reCaptchaは、スパムや悪用からWebサイトを保護するために使用されます。 recatpcha_site_key オプションを使用して、サイトにウィジェットを表示します。 reCaptchaを使用するには、https://developers.google.com/recaptcha/docs/start [reCaptcha docs]を参照してください。 reCaptchaが正しくない場合、 recaptcha_not_validated オプションを使用してメッセージを表示します。
フォームアクション
Eメール
以下に示すように、 process フィールドの下に特定のオプションを含む電子メールを送信できます-
- email:
from: "{{ config.plugins.email.from }}"
to: "{{ config.plugins.email.to }}"
subject: "Contact by {{ form.value.name|e }}"
body: "{% include 'forms/datal.twig' %}"
2つのフィールドを含む電子メールオプションを使用します。 from フィールドは電子メールアドレスの送信者を指定し、 to フィールドは電子メールプラグイン構成を使用して電子メールアドレスの受信者を指定します。 電子メールフィールドでは、 subject オプションも使用されます。このオプションでは、件名が[Contact by] [name入り]で入力された電子メールに電子メールが送信され、電子メールの本文は、テーマ。
他のページへのリダイレクト
*process* フィールドで定義された *message* および *display* オプションを使用して、別のページにリダイレクトできます。
process:
- message: Thank you for getting in touch!
- display: thankyou
*message* オプションは、ユーザーが送信ボタンをクリックしたときに表示されるメッセージを設定します。 ユーザーがフォームを送信すると、別のページにリダイレクトされます。 *form.md* ファイルが保存されている *thankyou* サブフォルダーの下に1つのサブページを作成します。 フォームを送信すると、ページにリダイレクトされ、上記のメッセージが表示されます。
*thankyou/formdata.md* というサブページには、次のコンテンツが含まれます。
---
title: Email sent
cache_enable: false
process:
twig: true
---
## Your email has been sent!
フォームを送信すると、プラグインはユーザーにメールを送信し、データは data/folder の下に保存されます。
Save
*user/data* フォルダーの下に保存されるファイルにデータを保存するために使用されます。
例えば-
process:
- save:
fileprefix: contact-
dateformat: Ymd-His-u
extension: txt
body: "{% include 'forms/data.txt.twig' %}"
データは、拡張子がtxtのテキスト形式で保存されます。 本文はテーマの templates/forms/datal.twig ファイルから取得されます。
次の画面は、単純なフォームを示しています-