eForm(SNIPPET)

MODx0.9.6には標準でeFormがついているが、この日本語対応はEUCもしくはUTF8らしい。日本語メールの標準的な文字コードは、ISO-2022-JPとのことなので、標準のままでは文字化けする可能性が大変に高い。
ということで、まずeForm(ISO版)のインストール。
こちらからダウンロード。現時点では0.9.6対応。
解凍して現れたフォルダを、/assets/snippets/eform/にアップロードする。
フォルダの中のeform.snippet.tplを開き、中のソースコードを管理画面→リソース管理→スニペット→eFormを選択、貼り付けて書き換える。
このとき、元のファイル及びリソースのスニペットを別名で保存しておくと、いつでもUTF版に戻せる。念のため残しておくほうがいい。
パラメータに対しプレイスホルダで指定できるものもあるっぽい。このときのプレイスホルダの名前は、inputタグのnameが対応する。
 
実際のスニペットコールは

[!eForm? &formid=`FormID` &tpl=`FormTemplate` &report=`FormReport`!]

もしくは

[[eForm? &formid=`FormID` &tpl=`FormTemplate` &report=`FormReport`]]

 
以下パラメータ解説。詳しくは参考サイト
formid...必須項目。フォームのID。ひとつのページ内で複数使うときに、区別として便利。フォーム入力用テンプレートでformタグにIDとして記述するのが無難?
tpl...必須項目。フォーム入力テンプレートをチャンク名もしくはドキュメントIDで指定。チャンク及びドキュメントの中で、プレイスホルダとして[+validationmessage+] [+postdate+] [+verimageurl+] [+debugText+]が使える。
to...メールの送信先。カンマで区切ることで複数指定も可能。デフォルトはMODx設定の送信者。
from...送信者(差出人)のメールアドレス。プレイスホルダから指定することも可能。デフォルトは送信者メールアドレス。
fromname...送信者の名前。プレイスホルダも指定できる。省略した場合はサイト名。
replyto...自動返信利用時の返信先。
bcc...BCC送信先
subject...件名。プレイスホルダから指定も可。
thankyou...送信後に表示するメッセージなどをチャンク名もしくはドキュメントIDで指定。
gotoid...送信後に表示するページをドキュメントIDで指定。
autosender...自動返信時の送信元アドレス。
autosendername...自動返信時の送信元名。
automessage...自動返信時のメールのテンプレートをチャンク名で指定。
 
テンプレートで使用できるプレイスホルダ(inputタグで自動的に入るものを除く)
[+validationmessage+]...入力チェック用のエラーメッセージを挿入する。
 
入力チェックはeForm属性で行う。

[description/title]:[datatype]:[required]:[validation message]:[validation rule]

string...必須項目が空かどうかだけをチェック。
date...strtotime() function に基づく正確な日付かどうかをチェック。
integer...数字かどうかをチェック。
float...数字かどうかをチェックします(上とどう違うかわからん)
email...妥当なメールアドレスかどうかをチェック。
file...アップロードされるファイルがサイズエラーを起こすかどうかチェック(ファイルタイプはチェックしない)
html...改行を
に変換する以外は string と同じ。
 
実際の利用例。
ドキュメントに書くスニペットコール

[!eForm? &formid=`telegramForm` &tpl=`telegram_tpl` &report=`telegram_report` &to=`murata-m@chronoworks.net` &subject=`祝電申し込み` &from=`[+email+]` &fromname=`[+name+]`!] 

テンプレートチャンク(telegram_tpl

<!-- [ ++ validationmessage ++ ] -->
<p>[+validationmessage+]</p>
<form id="telegramForm" method="post" action="[~18~]">
<table border="0">
  <tr>
    <th><label for="applicant">申込者</label></th>
    <td><input type="radio" name="applicant" value="本人" id="applicant" />      本人  
        <input type="radio" name="applicant" value="友人" id="applicant" />      友人</td>
  </tr>
  <tr>
    <th>お名前</th>
    <td>
      <input type="text" name="name" size="30" eform="お名前:string:1:お名前を入力してください:#REGEX #[^(お名前)]#" />
    </td>
  </tr>
  <tr>
    <th>フリガナ</th>
    <td>
      <input type="text" name="kana" size="30" eform="フリガナ:string:1:フリガナを入力してください:#REGEX #[^(フリガナ)]#" />
    </td>
  </tr>
  <tr>
    <th>E-Mail</th>
    <td>
      <input type="text" name="email" size="40" eform="メールアドレス:email:1" />
      (半角でお願いします)</td>
  </tr>
  <tr>
   <th>お電話番号</th>
   <td>
    <input name="tel" type="text" id="tel" size="40" />
   </td>
  </tr>
  <tr>
    <th>式場住所</th>
    <td>
      <textarea name="ceremony-address" cols="60" rows="2" eform="式場住所:string:1:式場住所を入力してください:#REGEX #[^(式場住所)]#"></textarea>
    </td>
  </tr>
  <tr>
    <td colspan="2" class="text10pt"><div align="left"><br>         
            <input type="submit" value="  &gt;&gt;送信する   " />
      </div>
    </td>
  </tr>
</table>
</form>

送信メールテンプレート(telegram_report)

--------------------------------------------------<br />
◇送信頂いたメール<br />
--------------------------------------------------<br />
申込者: [+applicant+]<br />
お名前: [+name+]<br />
フリガナ: [+kana+]<br />
メールアドレス: [+email+]<br />
お電話番号: [+tel+]<br />
式場住所: [+ceremony-address+]<br />

こんな感じ?