** pkwkmail.inc.php [#ad3d0c85] |RIGHT:100|LEFT:360|c |~サマリ|確認画面のあるメールフォームを生成するプラグインです。| |~リビジョン|0.9.5| |~対応バージョン|1.4.7| |~投稿者|[[jidaikobo]]| |~投稿日|&new{2007-02-05 (月) 09:06:33};| #contents *このプラグインは? [#hd2bb71b] 確認画面のあるメールフォームを生成するプラグインです。pukiwiki.ini.php の PKWKEXP_DISABLE_MULTILINE_PLUGIN_HACK を 0(有効)にしてお使いください。プラグイン呼び出しの書式は下記の通りです。 #pkwkmail{{ ここにフォームの部品やメッセージを書く }} このプラグインは、誰でも編集できてしまうとスパムメールの発射台になってしまうので、ページが凍結状態でないと動かないようになっています。 *フォーム部品の作り方 [#ya6ef222] フォームの部品は 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 という項目にすると、強制改行がはいります。 **以下に文例を記載しておきます。 [#yb206a47] attr = 'ご氏名','text','1','','お名前','(15)' attr = 'ふりがな','text','0','','おなまえ','(15)' attr = 'メールアドレス','email','1','','' attr = '性別','option','1','(,女,男)' attr = 'メニュー','radio','1','(うどん,そば,ラーメン)','' attr = '趣味','checkbox','1','(野球,テニス,サッカー)','(テニス,サッカー)' attr = '内容','textarea','0','','なにか文章を書いてください','(15,20)' これはおまけです。当方京都在住なので、京都が初期値です :)((読みにくかったので勝手に改行しちゃいました))((やー、やっぱり改行した方がよかったですかね。ありがとうございます。)) attr = '都道府県','option','1','(北海道,青森県,岩手県,宮城県,秋田県,山形県,福島県, 東京都,茨城県,栃木県,群馬県,埼玉県,千葉県,神奈川県,新潟県,富山県,石川県,福井県, 山梨県,長野県,岐阜県,静岡県,愛知県,三重県,京都府,滋賀県,大阪府,兵庫県,奈良県, 和歌山県,鳥取県,島根県,岡山県,広島県,山口県,徳島県,香川県,愛媛県,高知県,福岡県, 佐賀県,長崎県,熊本県,大分県,宮崎県,鹿児島県,沖縄県)','京都府' **余談 [#s4358bb9] [[WCAG の 10.4>http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#tech-place-holders]] では、フォームの入力例にあたる初期値を入れておくことを推奨していますが、音声利用環境では、フィールドにキャレットが移動したときに、初期値が選択された状態を解除してしまうことがあり、これに気づかずまちがった値を送信してしまうことがあります。下記の default_explanation などで、入力欄に移動したときに、初期値を消すように注意を喚起するのも手かと思います。 *ダウンロード [#h1cb62df] すべて UTF-8 です。単純に EUC にして動くかどうか未確認です……。 -[[pkwkmail 0.90>http://www.jidaikobo.com/pukiwiki/pkwkmail09.zip]] -[[pkwkmail 0.91>http://www.jidaikobo.com/pukiwiki/pkwkmail091.zip]] -[[pkwkmail 0.92>http://www.jidaikobo.com/pukiwiki/pkwkmail092.zip]] -[[pkwkmail 0.94>http://www.jidaikobo.com/pukiwiki/pkwkmail094.zip]] -[[pkwkmail 0.95>http://www.jidaikobo.com/pukiwiki/pkwkmail095.zip]] *メッセージ類のカスタマイズ [#eeb58e7b] **default_message [#l820ce7d] default_message = 'default_messageを設定してください。' 当該ページの本文にあたります。確認段階に進むと表示されなくなります。wiki書式扱いになります。 **default_explanation [#l62c9d75] default_explanation=' *フォーム 以下フォームに必要事項をご記入願います。''入力必須項目''について、 ご記入漏れのないようにお願いいたします。' 入力用フォームに付帯する説明文です。wiki書式扱いになります。 **reply_message_require [#ueb12f2b] reply_message_require='1' 0か1を指定します。初期値は1(自動返信メールを送る)になっています。 自動返信メールを送る、にしていても問い合わせをした人が、自動返信不要とすることができます。 自動返信を不要にされた場合と、この値をゼロにしている場合は、管理者には、「Copy has not been sent.」の情報が送信されます。 **admin_return_allowed [#tbbba1d4] admin_return_allowed='1' 0か1を指定します。初期値は1(自動返信メールの From を追加する)になっています。 **reply_message [#s81197b0] reply_message='このメールはシステムによる自動返信です。 以下、お問い合わせいただいた内容です。' 自動返信メールの本文です。この文章に続いて送信した値がメールされます。 **reply_message_foot [#w5d1ea70] reply_message_foot='ありがとうございました。' 自動返信メールの本文です。送信した値の下に表示されます。 **confirm_message [#gbb43127] confirm_message = ''''必要項目はすべて入力されています。 '''もう一度、内容を修正したい場合は、以下に続くフォームを編集してください。' 必要項目がすべて入力されている場合に出力される、最後の確認メッセージです。wiki書式扱いになります。 **confirm_message_title [#k4dee178] confirm_message_title='送信確認' 必要項目がすべて入力されている場合に出力される、最後の画面の大見出しです。 **confirm_message_reply [#f64d6a54] confirm_message_reply = '送信内容のご確認用メールが不要の場合は、 下記チェックを外して「送信する」を押してください。' reply_message_requireが1になっているとき、お問い合わせをする人は自動返信の受け取りを自分で選ぶことになります。このときの説明文です。wiki書式扱いになります。 **confirm_message_yet [#k8a7e6c3] confirm_message_yet = '下記項目をすべて入力の上、 送信しなおしてください。' 入力必須項目の確認です。wiki書式扱いになります。 **confirm_message_fromtitle [#r83f8e30] confirm_message_fromtitle='*編集・内容確認用フォーム' 送信内容確認用フォームの前掲文です。wiki書式扱いになります。 **confirm_message_yet [#h1dd4751] confirm_message_yet='入力必須項目をご確認ください' 確認用フォームの前掲文です。wiki書式扱いになります。 **finish_message [#qfbaf853] finish_message = '下記の通り、メールを送信しました。~ しかるべき反応がない場合は、システム不具合など理由でメールが 届いていない可能性があります。お手数ですが、別の手段でお問い合わせください。' メール送信後のメッセージです。wiki書式扱いになります。 **finish_message_return [#xcedaa41] finish_message_return = '[[トップページへもどる>FrontPage]]' メール送信後の送信済みデータの下に出る文章です。wiki書式扱いになります。 **finish_message_title [#mf0f850c] finish_message_title='メールを送信しました' メール送信後の見出しです。 **contact_title_to_admin [#aae5e56a] contact_title_to_admin='お問合せがありました' 管理者に向かって送信されるメールの件名です。 **contact_title_to_client [#hf1843d9] contact_title_to_client='自動返信:お問合せをいただきました' 自動返信で送信されるメールの件名です。 **domain_check [#o2e4da44] domain_check='1' 0か1を指定します。初期値は1(メールのドメインの存在チェックをする)になっています。このチェックを緩めたいときに設定してください。 *ライセンス [#xead3ffa] -PukiWiki と同じライセンスで。 *footnote [#fa5505bf] -このプラグインは XOOPS のお問い合わせモジュール「InquirySP」に影響を受けて作りました。ので InquirySP の作者の Marijuana さんへの謝辞がソース上にありますが、 Marijuana さんが作った訳ではないので、仕様や動作について、くれぐれも Marijuana さんに問い合わせなどしないようにしてください。 -仕事でプログラミングが必要なときは、外注しているので、僕自身はウェブ屋ですが PHPについては初心者です。アドバイスなどいただけると幸いです。 *履歴 [#wa65bebb] -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) *コメント [#yaa4fc16] - 文字化けしてしまいます。ver 0.94がダウンロードできないので,ver 0.92で使おうとしています。 -- [[aino310]] &new{2007-03-02 (金) 05:10:01}; -- ごめんなさい、0.94 もダウンロードできるようにしました。そういえばこいつは UTF-8 版しかないんですが、もしかして EUC ですか?? -- [[jidaikobo]] &new{2007-03-02 (金) 06:46:48}; --- EUCに変換して解決。お騒がせしました。 -- [[aino310]] &new{2007-03-03 (土) 17:22:04}; - 便利に使えそうです --なぜか$notify_toを拾ってくれない。。ページ内に「admin_adrs ='hoge@huga.com'」を記入してみたらうまくいく、、でもなんかやだな。 --- function PKWKMAIL_prepare(63行目あたり)の最初に、global $notify_to;を一行入れてやらないといけないのかも……(動作未確認です)。 [[jidaikobo]] --- 上記”global $notify_to;”でページ内に書かなくでも大丈夫になりました!ありがとう! -- life-stu --EUC-JPで使用。([[mbstring]]無しで、mb-emulator.phpを使用) mb_convert_encodingで"auto"を"EUC-JP"に変更してメールの文字化けが解消しました。-- life-stu &new{2007-03-05 (月) 10:57:47}; ---ご報告ありがとうございます。EUC の場合は明示しないといけないんですね。 - UTF-8でも同様でした。(それ以前にpukiwiki.ini.phpの$notify_to宛に送信されるという説明が無くても皆様は理解しているのでしょうか)他に何点か気になった点を・・・option/radioの初期値設定をしても反映されない。readmeにあるフォーム部品サンプルをコピーしてテストしようとすると、行頭に半角スペースが挿入されて動作しない。同じく都道府県サンプルのoptionは改行を削除して1行で入力しないと動作しない&北海道が初期値になる。 -- [[sio]] &new{2007-03-07 (水) 14:55:28}; #comment