#author("2022-06-14T13:43:53+09:00","","")
#author("2022-06-14T13:45:25+09:00","","")
** mailform.inc.php [#fb7d2529]
|RIGHT:125|LEFT:360|c
|~サマリ|カスタマイズ可能なメールフォームを設置するプラグイン|
|~リビジョン|1.0|
|~対応バージョン|1.5.4|
|~投稿者|[[kanateko]]|
|~投稿日|&new{2022-06-13 (月) 22:26:32};|
カスタマイズ可能なメールフォームを設置し、入力内容をプラグイン内で設定したメールアドレス宛に送信することができます。主に問い合わせフォームとしての使用を想定しています。~
デフォルト状態では名前、メールアドレス、件名、問い合わせ内容の4項目が表示され、設定ページを編集することでメールアドレスと件名の間に自由に追加項目を増やせます。~

#contents

**主な機能 [#zbaea3e7]
-メールフォームを設置する。
--入力内容の確認画面や自動返信メールの送信機能などもあり。
--モダンな見た目でレスポンシブ対応。
-入力項目は設定ページを編集することでカスタマイズ可能。
--使用可能な項目 (v1.0)
---&color(,#eee){text}; &color(,#eee){textarea}; &color(,#eee){number}; &color(,#eee){email}; &color(,#eee){radio}; &color(,#eee){checkbox}; &color(,#eee){select}; &color(,#eee){date}; &color(,#eee){time}; &color(,#eee){datetime-local}; &color(,#eee){hidden};
--任意項目と必須項目の設定も可能。
--テキスト入力の場合は文字数の上限を視覚的に表示する。
-セキュリティ面にも配慮済み。
--各種項目のバリデーション、二重送信の防止、クリックジャッキング、XSS、CSRF、メールヘッダ・インジェクション対策など。

*ダウンロード [#p775bb81]
**ダウンロード [#p775bb81]
-[[github.com:kanateko/pukiwiki-plugin/tree/master/plugin-mailform]]

*セットアップ [#m0d8a324]
**セットアップ [#m0d8a324]
+GitHubにある「plugin-mailform」フォルダをダウンロードし、中身をそのままpukiwikiのディレクトリに放り込む。
--配置の見本~
┣ skin~
┃ ┣ css (フォルダ)~
┃ ┗ js (フォルダ)~
┗ plugin~
  ┣ mailform (フォルダ)~
  ┗ mailform.inc.php
+プラグイン設定のメールアドレスを自分用に書き換える。 (詳細は下記参照)
+設定ページ (デフォルトでは&color(,#eee){:config/plugin/mailform};) を作成して凍結しておく。

*プラグインの設定 [#d74d8aa3]
**プラグインの設定 [#d74d8aa3]

|~定数 (PLUGIN_MAILFORM_~)|~型|~初期値|~説明|h
|BOLD:260|CENTER:80|220||c
|ADMIN_ADDR|string|'admin@example.com'|メールの送信先アドレス|
|AUTOREPLY_ADDR|string|'noreply@example.com'|自動返信の送信元アドレス|
|CONFIG_PAGE|string|':config/plugin/mailform'|設定ページ|
|RESTRICT_MODE|bool|true|設定ページが凍結されている場合のみ使用可能|
|SUBMIT_USER_DATA|bool|true|利用者のIPとUAを記録して送信|
|MAX_TEXTAREA_LENGTH|int|1200|テキストエリアの文字数制限|
|MAX_TEXT_LENGTH|int|80|テキストエリア以外の文字数制限|
|NAME_PREFIX|string|'mf_'|入力項目のname属性のプレフィックス|
|CLASS_DIR|string|PLUGIN_DIR . 'mailform/class/'|classディレクトリ|
|TPL_DIR|string|PLUGIN_DIR . 'mailform/template/'|templateディレクトリ|
|JS|string|'<script src="' . SKIN_DIR . 'js/mailform.js"></script>'|JavaScript読み込み用|
|CSS|string|'<link rel="stylesheet" href="' . SKIN_DIR . 'css/mailform.css">'|CSS読み込み用|

&color(,#eee){ADMIN_ADDR};と&color(,#eee){AUTOREPLY_ADDR};は必ず変更すること。

*使用方法 [#t611db2d]
**使用方法 [#t611db2d]
メールフォームを表示したいページに&color(,#eee){#mailform};とブロック型で記述する。

-設置例:https&#58;//jpngamerswiki.com/?a937b7b923
--※デモページなどではなく、自サイトの実際の問い合わせ用ページ

**オプション [#ydea478f]
引数で文字列を渡すと読み込む設定ページを変更できる。
なお、読み込めるのはプラグイン設定で指定したページの子ページのみ。

例)
-引数がない場合:&color(,#eee){#mailform}; → &color(,#eee){:config/plugin/mailform}; を読み込む
-引数がある場合:&color(,#eee){#mailform(sub)}; → &color(,#eee){:config/plugin/mailform/sub}; を読み込む

**設定ページの書き方 [#s00be58e]
追加項目の設定を定義リストで一行ずつ書いていく。

***基本的な書き方 [#uc19b248]
わかりやすく途中にスペースを入れているが実際には不要。

 : <項目の表示名> , <name> | <type> , [オプション]

必須項目にしたい場合は表示名の前に「''*''」 (アスタリスク) を書く。

name属性が重複している場合はエラーになる。
また、デフォルトの項目で使用している ''name''、''mail''、''subject''、''body'' の4つはname属性として設定できない。

typeは

-&color(,#eee){text}; &color(,#eee){textarea}; &color(,#eee){number}; &color(,#eee){email}; &color(,#eee){radio}; &color(,#eee){checkbox}; &color(,#eee){select}; &color(,#eee){date}; &color(,#eee){time}; &color(,#eee){datetime-local};

のいずれかを指定可能。

***各typeごとのオプション [#yf66a80d]
不要なオプションは省略可能。それぞれの指定はカンマで区切る。

''text'', ''textarea'', ''email''
 [プレースホルダー] , [初期値] , [文字数の最大]

''number''
 [プレースホルダー] , [初期値] , [文字数の最大] , [値の最小] , [値の最大]

''radio'', ''checkbox'', ''select''
 < 選択肢1 | 選択肢2 | ... | 選択肢n > , [初期値]

''date'', ''time'', ''datetime-local''
 [初期値] , [最小] , [最大]

オプション指定時のフォーマットはそれぞれ以下のようになる。
-&color(,#eee){date}; → Y-m-d (例:2022-01-01)
-&color(,#eee){time}; → H:i:s or H:i (例:06:30:00 or 06:30)
-&color(,#eee){datetime-local}; → Y-m-d\TH:i:s (例:2022-01-01T06:30)

参考:https&#58;//developer.mozilla.org/ja/docs/Web/HTML/Element/input

また、各オプションは相対的な指定も行える。 ~
例) &color(,#eee){: 日時 , datetime | datetime-local , now , -1 month , last day of december this year};

参考:https&#58;//www.php.net/manual/ja/datetime.formats.relative.php

''hidden''
 <value>

***設定ページの例 [#c9ef50f8]

表示
:*住所,address|text,例) 京都府京都市伏見区淀水垂町509-16
:*配達日,date|date,now,tomorrow,+7 days
:*時間指定,time|radio,希望なし|午前|午後,希望なし
:サイズ,size|hidden,120サイズ

ソース
 :*住所,address|text,例) 京都府京都市伏見区淀水垂町509-16
 :*配達日,date|date,now,tomorrow,+7 days
 :*時間指定,time|radio,希望なし|午前|午後,希望なし
 :サイズ,size|hidden,120サイズ

*メールの内容 [#x92ad61b]
**メールの内容 [#x92ad61b]
メールフォームから送信があった場合、プラグイン設定で指定したメールアドレス宛に以下のようなメールが届く。

 以下の内容でお問い合わせがありました。
 ------------------------------
 【送信日時】2022-06-12 (日) 23:14:54
 【お名前】鈴木太郎
 【メールアドレス】example@gmail.com
 【件名】送信テスト
 
 【お問い合わせ内容】
 これはメールフォーム送信テストです。
 
 ------------------------------
 PAGE: mailform
 URL: xxx.com/?mailform
 IP: ***.***.***.***
 UA: ~~~

また、送信者が確認画面で「確認用メールを送信する」にチェックをしていた場合、フォームに入力したメールアドレスに以下のような自動返信メールが届く。

 以下の内容でお問い合わせを受け付けました。
 ------------------------------
 【送信日時】2022-06-12 (日) 23:14:54
 【お名前】鈴木太郎
 【メールアドレス】example@gmail.com
 【件名】送信テスト
 
 【お問い合わせ内容】
 これはメールフォーム送信テストです。
 
 ------------------------------
 ※このメールは自動返信によって送信されています。
 サイトURL: xxx.com/

※自動返信メールの内容にhiddenの値は含まれない。

**参考リンク [#b47ec956]
-https&#58;//jpngamerswiki.com/?fe6cd3458c (配布元)

**ライセンス [#d1c8444f]
GPL v3

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.079 sec.

SourceForge