前回に示したサンプルフォームは、以下の様な構造で出来ています。
<{capture}>
<form>
(自由なフォーム要素記述)
</form>
<{/capture}>
<{formmail}>
フォーム部分をSmartyプラグインのcaptureでくくって、その直後に、pico専用プラグインであるformmailを置く、という形になります。
「フォーム部分をキャプチャーして、formmailプラグインがその中身を解析し、POSTデータを受け取ってSESSIONに保存し、フォーム部分を書き換えて出力する」
こう書けば、動作も判りやすいでしょうか。
<form> には、actionもmethodもありませんが、実はこれ、特殊な形で、<form>となっている場合にのみ、actionとmethodを自動で書き換えます。
フォーム自身のURIがわかるのであれば、
<form action="/modules/pico/form.html" method="POST">
なとど明示的に記述しても構いません。この場合は、この部分の書き換えは発生しません。
フォーム要素記述部分には、自由にHTMLを書いてもらってかまいませんが、formmailプラグインが書き換える都合上、なるべく標準的な正しいHTMLを記述してください。
・タグ名などはすべて小文字で記述する
・<option>の選択済は、 selected="selected" とちゃんと記述する
・<input>などは、最後を必ず閉じる
・各フォーム要素(<input>等)については、なるべく、それに対応する<label>を記述する
formmailプラグインは、<label>を各フォーム要素の項目名だと判断します。
<label>がない場合は、フォーム要素のname属性がそのまま項目名になります。
各フォーム要素の初期値も自由に記述してもらって構いません。一回投稿されれば、その部分は上書きされます。
以上、デザイナーさんのための簡単なドキュメントでした。
次回はプログラマーのために、動作原理についてもう少し踏み込んでみます。