これは Craft CMS Advent Calendar 2017 24日目の記事です。
管理機能として複数のフォームを管理したり、それぞれを柔軟にカスタマイズできると便利ですよね?
Craft CMS でも、有償・無償それぞれにいくつか使い勝手のよい問い合わせフォーム用のプラグインが提供されています。
そこで、今回は a&m forms プラグインについてまとめてみます。
思っていたよりも項目が多かったため、今回は「プラグイン設定」に絞って解説します。
a&m forms プラグインとは
am-impact/amforms: Forms plugin for Craft
https://github.com/am-impact/amforms
GitHub で公開されているフォーム管理用のプラグインで、以下のような特徴があります。
- 複数フォームの作成
- フォーム専用フィールドの作成
- 受信データの CSV エクスポート
- アンチスパム機能
- Google reCAPTCHA 連携
利用頻度の高い機能がまとまっていて、かつ、商用利用でも無料で使えるため、抑えておいて損はないでしょう。
なお、ライセンスの詳細については LICENSE.txt にも目を通しておいてください。
プラグインの設定項目について
プラグインの設定画面では、5つのグループに関する指定が可能です。
項目ごとの概要を列挙しますので、参考にしてください。
一般
プラグイン全体に関わる設定です。

| ラベル | 値 |
|---|---|
| Plugin name | 管理画面に表示されるプラグインの名称を変更します。 |
| Quiet errors | ここが ON の場合、エラーが生じるとログに出力します。OFF の場合は throw されます。 |
| Fields per set | フィールドレイアウトの設定画面に影響します。1つあたりの FIELDSET に含まれるフィールド数を指定します。 |
| Bcc email address | 管理者宛通知メールの BCC にするメールアドレスを指定します。 |
Exports
受信データの CSV エクスポートに関する設定です。

| ラベル | 値 |
|---|---|
| Delimiter | セルの区切り文字を指定します。 |
| Export rows per set | Export タスクで出力される1ファイルあたりの行数を指定します。 |
| Ignore Matrix field and block names | Matrix フィールド、または、それに含まれるブロックを出力から除外する場合に ON にします。 |
| Ignore Matrix multiple rows | Matrxi フィールドに複数のブロックが含まれる場合、ここを ON にしておくと最初のブロックだけに出力を制限します。 |
AntiSpam
アンチスパムに関する設定です。

| ラベル | 値 |
|---|---|
| Honeypot enabled | Honeypot を有効にする場合は ON にします。 |
| Honeypot name | Honeypot 用のテキストフィールドの name 属性値を指定します。 |
| Time check enabled | フォーム送信までの時間をチェック対象にする場合は ON にします。 |
| Minimum time in seconds | フォーム送信までに最低限必要とする秒数を指定します。 |
| Duplicate check enabled | 受信データの重複チェックを有効にするかを指定します。 |
| Origin check enabled | ユーザーエージェントなどによる重複チェックを有効にするかを指定します。 |
Honeypot を有効にする場合、テンプレートの form タグ内に {{ craft.amForms.displayAntispam() }} を記述しておく必要があります。
reCAPTCHA
Google reCAPTCHA に関する設定です。あらかじめ API Key を取得してください。

| ラベル | 値 |
|---|---|
| Google reCAPTCHA enabled | reCAPTCHA を有効にする場合は ON にします。 |
| Site key | 取得した Site key をセットします。 |
| Secret key | 取得した Secret key をセットします。 |
reCAPTCHA を有効にする場合、テンプレートの form タグ内に {{ craft.amForms.displayRecaptcha() }} を記述しておく必要があります。なお、 API Key の取得時に Invisible reCAPTCHA を選択していても、reCAPTCHA V2 タイプの表示となります。
Templates
フォーム表示用のテンプレートを craft/templates 下層にある任意のテンプレートで上書きします。

| ラベル | 値 |
|---|---|
| Form template | displayForm() で出力されるフォーム全体のテンプレートを指定します。 |
| Tab template | フォームの設定で Display tab titles が ON の場合に displayForm() で出力されるタブタイトル部分のテンプレートを指定します。 |
| Field template | displayField() で出力されるフィールド部分のテンプレートを指定します。 |
| Notification template | 管理者向けの通知メールのテンプレートを指定します。 |
| Confirmation template | 自動返信メールのテンプレートを指定します。 |
ここで指定可能なすべてテンプレートは、各フォームの設定画面で上書きすることもできます。
まとめ
ここでは a&m forms プラグインの「プラグイン設定」についてまとめてみました。
次回は、サンプルのフォームを作成しながらポイントを解説しようと思います。