pkwkmail.inc.php

サマリ確認画面のあるメールフォームを生成するプラグインです。
リビジョン1.0.0b
対応バージョン1.4.7
投稿者jidaikobo
投稿日2007-02-05 (月) 09:06:33

最初に

このプラグインには後継プラグイン「pkwkmail2.inc.php」があります。

このプラグインは?

確認画面のあるメールフォームを生成するプラグインです。 pukiwiki.ini.php の PKWKEXP_DISABLE_MULTILINE_PLUGIN_HACK を 0(有効)にしてお使いください。プラグイン呼び出しの書式は下記の通りです。

#pkwkmail{{
ここにフォームの部品やメッセージを書く
}}

このプラグインは、誰でも編集できてしまうとスパムメールの発射台になってしまうので、ページが凍結状態でないと動かないようになっています。しかし、凍結状態のままだと、編集の結果を見るのが煩わしくなってしまうので、編集時には、プラグインのソースコード冒頭の PKWKMAIL_FREEZE_CHECK の値を 0 にすると、注意喚起をしつつ、編集結果を確認していじれるようになっています。実際の運用時には、凍結状態で使うようにしてください。

フォーム部品の作り方

フォームの部品は attr という文字列から始めます。 たとえば氏名の入力欄を作る場合、下記のような書式になります。

attr = 'ご氏名','text','1','','お名前','(15)'

この書式の意味は、「th がご氏名となっている、input 入力欄をつくる。そのフィールドの初期値は、お名前。この項目は入力必須項目で、size は 15。」という意味です。

attr = '趣味','checkbox','1','(野球,テニス,サッカー)','(テニス,サッカー)'

この場合は、チェックボックスを生成します。th が チェックボックスで、その候補が、4つめのシングルクォーテーション内に括弧書き、コンマ区切りで並んでいます。5つめのシングルクォーテーション内には、初期選択値が入っています。

項目の種類には、text, password, option, radio, checkbox, textarea に加えて、email というものがあります。email だけは特別扱いで、自動返信の機能を使う場合は、自動返信先になる予定のフィールドを email としてください。 また checkbox-br と radio-br という項目にすると、強制改行がはいります。 あと、Katsumi Saito さんの改造で、初期値に「%DATE%」を入れると、当日の日付が表示されるようになりました。

これらの設定値は、admin_adrs という値で設定したメールアドレスに送信されます(admin_adrs を設定しない場合は、pukiwiki.ini.phpの$notify_toで設定したメールアドレスに送信)。

フォーム部品についてもうちょっと詳しく

変数名th種類必須選択肢初期値サイズ
attrご氏名text1お名前(15)
attr趣味checkbox1(野球,テニス,サッカー)(テニス,サッカー)

最初に「attr=」を書いて、続けて属性を設定します。シングルクォーテーションの順序でフォーム部品を作るので、たとえば「選択肢」が存在しないようなフォーム部品の場合、空のシングルクォーテーションを用意します。
checkbox, radio, option の選択肢は配列であることを明示するので、半角括弧でくくります。初期値(初期選択値)も同様に半角括弧でくくります。
text と password と emailと textarea は、ボックスのサイズを指定できますが、これも半角括弧でくくります。

以下に文例を記載しておきます。

attr = 'ご氏名','text','1','','お名前','(15)'
attr = 'ふりがな','text','0','','おなまえ','(15)'
attr = 'メールアドレス','email','1','',''
attr = '性別','option','1','(,女,男)'
attr = 'メニュー','radio','1','(うどん,そば,ラーメン)',''
attr = '趣味','checkbox-br','1','(野球,テニス,サッカー)','(テニス,サッカー)'
attr = '内容','textarea','0','','なにか文章を書いてください','(15,20)'
admin_adrs ='example@example.com'

これはおまけです。当方京都在住なので、京都が初期値です :)*1*2

attr = '都道府県','option','1','(北海道,青森県,岩手県,宮城県,秋田県,山形県,福島県,
東京都,茨城県,栃木県,群馬県,埼玉県,千葉県,神奈川県,新潟県,富山県,石川県,福井県,
山梨県,長野県,岐阜県,静岡県,愛知県,三重県,京都府,滋賀県,大阪府,兵庫県,奈良県,
和歌山県,鳥取県,島根県,岡山県,広島県,山口県,徳島県,香川県,愛媛県,高知県,福岡県,
佐賀県,長崎県,熊本県,大分県,宮崎県,鹿児島県,沖縄県)','京都府'

余談

WCAG の 10.4 では、フォームの入力例にあたる初期値を入れておくことを推奨していますが、フィールドにキャレットが移動したときに、初期値が選択された状態を解除してしまうことがあり、音声利用環境では、これに気づかずまちがった値を送信してしまうことがあります。下記の default_explanation などで、入力欄に移動したときに、初期値を消すように注意を喚起するのも手かと思います。

ダウンロード

すべて UTF-8 です。EUC の場合は、文字コードを変更してお使いください*3。 基本的に最新版の方がよいはずですが、検証用に過去バージョンを残しています。

メッセージ類のカスタマイズ

default_message

default_message = 'default_messageを設定してください。'

当該ページの本文にあたります。確認段階に進むと表示されなくなります。wiki書式扱いになります。

default_explanation

default_explanation='
*フォーム
以下フォームに必要事項をご記入願います。''入力必須項目''について、
ご記入漏れのないようにお願いいたします。'

入力用フォームに付帯する説明文です。wiki書式扱いになります。

reply_message_require

reply_message_require='1'

0か1を指定します。初期値は1(自動返信メールを送る)になっています。 自動返信メールを送る、にしていても問い合わせをした人が、自動返信不要とすることができます。 自動返信を不要にされた場合と、この値をゼロにしている場合は、管理者には、「Copy has not been sent.」の情報が送信されます。

admin_return_allowed

admin_return_allowed='1'

0か1を指定します。初期値は1(自動返信メールの From を追加する)になっています。

reply_message

reply_message='このメールはシステムによる自動返信です。
以下、お問い合わせいただいた内容です。'

自動返信メールの本文です。この文章に続いて送信した値がメールされます。

reply_message_foot

reply_message_foot='ありがとうございました。'

自動返信メールの本文です。送信した値の下に表示されます。

confirm_message

confirm_message = ''''必要項目はすべて入力されています。
'''もう一度、内容を修正したい場合は、以下に続くフォームを編集してください。'

必要項目がすべて入力されている場合に出力される、最後の確認メッセージです。wiki書式扱いになります。

confirm_message_title

confirm_message_title='送信確認'

必要項目がすべて入力されている場合に出力される、最後の画面の大見出しです。

confirm_message_reply

confirm_message_reply = '送信内容のご確認用メールが不要の場合は、
下記チェックを外して「送信する」を押してください。'

reply_message_requireが1になっているとき、お問い合わせをする人は自動返信の受け取りを自分で選ぶことになります。このときの説明文です。wiki書式扱いになります。

confirm_message_yet

confirm_message_yet = '下記項目をすべて入力の上、
送信しなおしてください。'

入力必須項目の確認です。wiki書式扱いになります。

confirm_message_fromtitle

confirm_message_fromtitle='*編集・内容確認用フォーム'

送信内容確認用フォームの前掲文です。wiki書式扱いになります。

confirm_message_yet

confirm_message_yet='入力必須項目をご確認ください'

確認用フォームの前掲文です。wiki書式扱いになります。

finish_message

finish_message = '下記の通り、メールを送信しました。~
しかるべき反応がない場合は、システム不具合など理由でメールが
届いていない可能性があります。お手数ですが、別の手段でお問い合わせください。'

メール送信後のメッセージです。wiki書式扱いになります。

finish_message_return

finish_message_return = '[[トップページへもどる>FrontPage]]'

メール送信後の送信済みデータの下に出る文章です。wiki書式扱いになります。

finish_message_title

finish_message_title='メールを送信しました'

メール送信後の見出しです。

contact_title_to_admin

contact_title_to_admin='お問合せがありました'

管理者に向かって送信されるメールの件名です。

contact_title_to_client

contact_title_to_client='自動返信:お問合せをいただきました'

自動返信で送信されるメールの件名です。

domain_check

domain_check='1'

0か1を指定します。初期値は1(メールのドメインの存在チェックをする)になっています。このチェックを緩めたいときに設定してください。

ライセンス

footnote

履歴

2007年2月5日月曜日人柱版公開ver 0.9
2007年2月14日水曜日checkbox-brとradio-brの追加ver 0.9.1
2007年2月23日金曜日th 内に入る質問項目中に&br;があった場合は改行ver 0.9.2
2007年3月1日木曜日使い方があっているのかどうかいまいち分ってないが、$digest を作ってみた。また質問項目中に&br;があった場合、送信メールにはこの br を送らないように修正ver 0.9.4
2007年3月2日金曜日質問項目中に&br;があった場合の不具合修正と、コメントをもうちょっと詳細にしたver 0.9.5
2007年3月9日金曜日readme の文例をちょっと改善*4。$notify_to の修正*5。checkbox-br と radio-br のものぐさ処理を改良*6ver 0.9.6
2007年5月15日金曜日Katsumi Saito さんにソースコードを大改良していただいた。あわせて PukiWiki Plus! にも対応。一部 htmlspecialchars が抜けていたのを修正(メールフォーム由来の値ではないので危険度は低いと思われるが、ご利用中の方はアップデートを推奨します。)ver 0.9.8
2007年7月13日金曜日E_ALL 対応ver 0.9.9
2007年7月20日水曜日email をお問い合わせ項目にしていないときの挙動の修正。ver 1.0.0b

コメント

マルチライン関係のトラブル

ページ凍結されていません。危険なので、ページを凍結してください。

default_messageを設定してください。 
フォーム
以下フォームに必要事項をご記入願います。入力必須項目について、ご記入漏れのないようにお願いいたします。

「内容確認」

attr = 'ご氏名','text','1','','お名前','(15)' attr = 'ふりがな','text',... }}

ファイル添付について


*1 読みにくかったので勝手に改行しちゃいました
*2 やー、やっぱり改行した方がよかったですかね。ありがとうございます。
*3 thx aino310
*4 thx sio
*5 thx life-stu
*6 どちらか -br にすると、両方 br になっていた (^^;
*7 すみません、勝手ながら省略しています - jidaikobo
*8 すみません、勝手ながら省略しています - jidaikobo
*9 'を続けて書くと太字になるので半角スペースを入れてますが、実際はありません
*10 きちんと見えるように、勝手に書き変えました

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-11-21 (火) 23:42:13
Site admin: PukiWiki Development Team

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

SourceForge