picoのsmarty pluginによる機能拡張(1)

Date 2007-09-23 15:41:58 | Category: XOOPS

in englishin japanese
"HTMLでValidateするフォームメール" という記事を何回か連続で書いてきましたが、この意味がなかなか判りづらいかもしれません。「POSTデータ処理を行うための基準を、HTMLフォームそのものに求める」と書いても、判らない人には判らないでしょう。

というわけで、もう少し判りやすい実例で行きましょう。

その1
「商品説明コンテンツに、共通の問い合わせフォームを埋め込む」

picoを使ってカテゴリーごとに商品ページを作ったとしましょう。それらの一つ一つに、問い合わせフォームを埋め込んでいくなんて、それこそナンセンスです。

こんな用途では、formmailプラグインとpicoプラグインの組み合わせでバッチリです。
商品説明ページはこんな感じで作ります。(SmartyフィルターをONにすること)

(商品説明部分)

<{capture}>
<{pico id="(フォームを記述したコンテンツ番号)"}>
<{/capture}>
<{formmail4fleamarket mail_body_pre="以下の商品について問い合わせがありました。\nいずれかの連絡先までご連絡ください。\n\n" from_name="商品問い合わせ担当" cc_field_name="youremail" cc_mail_subject="確認メール" cc_mail_body_pre="お問い合わせありがとうございました。\n以下が確認内容です。\n"}>


まず <{pico id=""}> の部分がミソです。

<form>
  お名前: <input type="text" name="お名前" class="required" /><br />
  email: <input type="text" name="youremail" class="email" />
  <input type="submit" />
</form>

とりあえず、こんな内容のフォームを、picoコンテンツとして作っておいて、そのコンテンツ番号を、id="" の中に書き込むのです。そうすることで、全ての商品について、共通のフォームを利用できることになります。この商品には別のフォーム、なんてことも、それぞれ対応するコンテンツ番号にすれば良いだけです。

もちろん、別のpicoにあるフォームでも構いません。その場合は、
<{pico id="(コンテンツ番号)" dirname="(dirname)"}>
とdirnameで指定します。

次に、<{formmail}> の部分ですが、今度は、随分と長くなっています。
実はこれ全部、formmailプラグインの引数です。

この引数によって、フォームメールの各種動作を変更することが出来ます。
ここでは、このサンプルで使われている引数だけ解説しておきます。

mail_body_pre: XOOPSから管理者に送られるメール本文で、問い合わせ内容の前に置かれるテキストです
from_name: メールの送信者名です
cc_field_name: フォーム回答者にも確認メールを送る際に、その宛先となるメールアドレスとなるフィールド名を指定します(ここではyouremail)
cc_mail_subject: 確認メールのSubjectです
cc_mail_body_pre: 確認メール本文で、問い合わせ内容の前のテキストです

引数をいろいろいじって試してください。





You can read more news at PEAK XOOPS.
http://xoops.peak.ne.jp

The URL for this story is:
http://xoops.peak.ne.jp/md/news/index.php?page=article&storyid=443