Ja:EForm
From MODx Wiki
MODx Snippet
eForm v1.4.3
- Author
- TobyL
- MODx Versions
- >= 0.9.5
- Last Updated
- 1/7/2007
- 強力なバリデーションルールを使用したフォームの検証
- 不正に対するhiddenフィールドの保護
- CAPTCHAサポート
- 添付ファイル付きのHTMLメールのサポート
- プレイスホルダによる柔軟なレポートとページの生成
- モバイル・携帯への通知
- 自動返信メール
- CC、BCCフィールドのサポート
eFormには、パッケージに詳細なドキュメントが含まれています。
[edit]
ダウンロード
MODxリポジトリのeForm、latest versionからダウンロードしてください。
[edit]
インストール
- ZIPファイルをassets/snippet/フォルダに展開します。
- eFormという名前で新しいスニペットを作成し、eform.snippet.tplの内容をコピー&ペーストします。
- eform/docs/eform.htmとサンプルをご覧ください。
- MOdxのページ(ドキュメント・フォルダ)に、必要なパラメータを付け加えたeFormのスニペットコールを書きます。
[edit]
使い方
[edit]
パラメータ
- &formid - 必須
- ページ上のフォームのID。スニペットで管理するために使います。 例:
<form id="formid">
- ページ上のフォームのID。スニペットで管理するために使います。 例:
- &tpl - 必須
- テンプレートとして使うチャンク名かドキュメントID。
- &report - 必須
- レポート作成のためのテンプレートとして使うチャンク名かドキュメントID。&noemailパラメータを使う場合は、このパラメータは必須ではありません。
さらに...
[edit]
イベント
[edit]
eFormOnBeforeFormParse
フォームがパースされる直前に呼び出されます。フォームからPOSTされた妥当なデータ($_POST)ある場合にのみ、パースが行われます。
[edit]
eFormOnValidate
ビルトインのバリデーションがパースされた後に呼び出されます。バリデーションの拡張に使います。
[edit]
eFormOnBeforeMailSent
メッセージが送信される前に呼び出されます。このイベントは&noemailが設定されているかどうかに関わらず呼び出されます。
[edit]
eFormOnMailSent
メッセージを送信した後に呼び出されます。&toが設定されていない場合、またはメールアドレスが正しくない場合、このイベントは呼び出されません。
[edit]
eFormOnBeforeFormMerge
フォームがクライアントブラウザに出力される前に呼び出される、最後のイベントです。
[edit]
サンプル
[edit]
eFormフォーム
[edit]
シンプルな問い合わせフォームのチャンク
<p class="error">[+validationmessage+]</p> <form method="post" action="[~[*id*]~]" id="EmailForm" name="EmailForm"> <fieldset> <h3>お問い合わせ</h3> <input name="formid" type="hidden" value="ContactForm" /> <label for="cfName">お名前: <p><input name="name" id="cfName" class="text" type="text" eform="お名前::1:" /></p></label> <label for="cfEmail">メールアドレス: <p><input name="email" id="cfEmail" class="text" type="text" eform="メールアドレス:email:1" /></p> </label> <label for="cfRegarding">件名: <p><input name="subject" id="cfRegarding" class="text" type="text" eform="件名::1" /></p> </label> <label for="cfMessage">メッセージ: <p><textarea name="message" id="cfMessage" eform="メッセージ:textarea:1"></textarea></p> </label> <label> </label><p><input type="submit" name="contact" id="cfContact" class="button" value="送信" /></p> </fieldset> </form>--ScottyDelicious 16:00, 5 December 2006 (PST)
[edit]
eFormレポート
[edit]
シンプルなレポートのチャンク
<p>これは、このWebサイトのフィードバックフォームを使って<b>[+name+]</b>から寄せられた反響です。メッセージの詳細は次の通りです。</p> <p>名前: [+name+]</p> <p>e-mail: [+email+]</p> <p>件名: [+subject+]</p> <p>コメント:<br />[+message+]</p> <p>次のリンクから返信することができます: <a href="mailto:[+email+]?subject=RE: [+subject+]">[+email+]</a></p>--ScottyDelicious 16:00, 5 December 2006 (PST)
[edit]
eFormのスニペットコール
[!eForm? &formid=`ContactForm` &subject=`[+subject+]` &to=`you@youremail.com` &ccsender=`1` &tpl=`ContactForm` &report=`ContactFormReport` &gotoid=`1` !]
[edit]
FlashフォームとeForm
eFormは、Flashフォームを通して送信されたデータを処理することができます。 Flashフォーム内の全てのフィールドをチャンクテンプレート(tpl)に定義します。 FlashフォームのフォームID(formid)フィールドに適切な名前を追加し、eFormのスニペットコールがあるページのフォームにデータを送信(POST)します。 eFormとFlashでファイルのアップロードも管理することができます。そのためには、次のようなコードを使って、Flashから1回で全てのデータを送信する必要があるでしょう。
var postData:String = ""; postData += "action=index.php?id=<eFormPage>"; postData += "&name="+escape(Util.trim(input_name.text)); fileRef["postData"] = postData; fileRef.upload(url);
Flashに送信の成功を通知するために、eFormのレポートをXMLドキュメントとして出力することができます。
<root> <success>1</success> </root>
[edit]
ノート
- フォームの出力(tplパラメータ)にチャンクではなくテンプレートを使用する場合は、テンプレートの「リッチテキスト」の設定を無効にしてください。さもなければ、最初にeFormのフォームを編集する際に、eFormで使われる擬似的なeform属性(eform="~")の全てが削除されてしまうでしょう。
- スニペットコールの引用符はシングルクォーテーションではなくバッククォートです。シングルクォーテーションを使うと、"テンプレートのためのドキュメント、またはチャンクが見つかりません。"という旨のエラーを発生させるでしょう。
[edit]
リソース
- eForm Howtos on MODxWiki

