PloneFormGen 1.7.0 でフォームからメール送信 - Plone 4 Advent Calendar 17日目
Plone 4 Advent Calendar 2011 の17日目です。 本当は昨日が担当予定でしたが、書く時間がなさそうだったため @terapyon と順番を入れ替えてもらいました。ありがとうございます。
今日は Plone の定番アドオンプロダクト(標準機能じゃなく追加することによって機能が追加できるモジュール) PloneFormGen の最新版 1.7.0 の紹介をしたいと思います。
が、その前に ploud.com の新機能の話から。
言語指定メニューが増えた
Ploud のサイト作成画面ですが、ただ作成するだけじゃなくて言語等を指定できるようになりました。
新しいサイト作成画面では Site Type と Language の2つの項目が指定できます。 Site Type の選択肢は Plone 4.1 しかありませんでしたが、今後は増えてくるのかも知れません。 Language はそのままですがサイトの言語を指定します。Japanese を選ぶことによって、最初から「ログイン」のように各種メニューなどが日本語化されています。 ただし、トップページやEvents等は英語のままでした。
PloneFormGen
さて、 PloneFormGen の説明です。ploud.com には最新版の 1.7.0 が用意されています。 最初に PloneFormGen について説明すると、Plone 上でアンケートとか会員登録みたいな入力フォームを作成するための、汎用的な機能を提供するプロダクトです。Web の画面上でメール送信フォームなどを作成することができます。
実際に PyCon JP 2011 のサイトでも、Call for Paper の応募や 参加者登録のフォーム として利用していました。
PloneFormGen を使えるようにする
では、ploud.com サイトで PloneFormGen を使ってみます。 管理者としてログインして、右上のユーザメニューからサイト設定→アドオンを選択します。 ここには現在有効になっているアドオンと、利用できる(有効にできる)アドオンが表示されています。 PloneFormGen 1.7.0 の横にあるチェックボックスをチェックし「有効にする」ボタンをクリックして有効にします。

すると PloneFormGen が使えるようになり、新規追加メニューに「Form Folder」が増えています。

Form Folderを選択するとアイテムが作成されるので、タイトルを指定して保存します。

するとこんな感じで「メールアドレス」「件名」「コメント」を書き込めるフォームが作成されました。次にフォームに入力フィールドをを追加します。

QuickEdit
PloneFormGen で作成したフォームに様々な入力フィールドを追加します。 以前は右上の「新規追加メニュー」から「String Field」とかを選んで追加していたんですが、1.7.0 では新たに「QuickEdit」という機能で素早くフィールドの追加、編集ができるような画面が追加されました。
Form Folderを開いている状態で「QuickEdit」タブを選択すると、QuickEdit画面に遷移します。右側の「Toolbox」には追加できる入力フィールド等が表示され、左側に現在の入力フィールドなどが表示されます。

Order の部分を Drag & Drop するとフィールドの順番を変えたり、「☓」アイコンをクリックしてフィールド削除、鉛筆アイコンをクリックしてフィールドの編集ができます。
右側の「ToolBox」からここでは「Checkbox Field」をDrag & Dropしてチェックボックスのフィールドを任意の場所に追加します。

追加するとフィールドのラベルやヘルプ(説明)等を入力しますると、フィールドが追加されます。

Mailer Adapter の設定
次にメールを送信するための Mailer Adapter の設定を行います。 まず「基本」タブの内容ですが、ここでメールの送信先をしています。
ここで「受信者のメールアドレス」を指定しないと、メールを作成した人のメールアドレスにメールが飛びます。本人にも確認用にメールを送信したい場合には便利な機能だと思います。

参加者登録のときなどは本人とは別に事務局のようなところにもメールを送信して欲しいと思います。その場合は「Addressing」タブを選択し、「CC 受信者」等にメールアドレスを指定します。

メール送信のフォーマットはデフォルトでは HTML メールになっていますが、テキスト形式でメールを送りたい場合もあると思います。その場合は Template タブでメールのテンプレートを記述します。

メールのテンプレートは Zope Page Templates の形式で書くのでちょっとわかりにくいと思います。 私はテキスト形式でメールを送るために、以下のようなテンプレートを使用しています。 Mail-Body Type をテキストにすることもお忘れなく。
<span tal:replace="here/getBody_pre | nothing" /> <tal:block repeat="field options/wrappedFields | nothing">\ <span tal:define="fname field/fgField/getName; value python:request.form.get(fname, '');"\ tal:replace="string:$fname: $value"/></tal:block> <span tal:replace="here/getBody_post | nothing" /> <span tal:replace="here/getBody_footer | nothing" />
ただ、上記のテンプレートを PloneFormGen 1.7.0 に指定したらなぜかエラーで怒られました。謎です。デフォルトのテンプレートでも怒られたのでなんらかのバグがありそうです。
次は nk24 さんお願いします。
- カテゴリ
-
plone
-
- ¦
- 固定リンク
- ¦
- コメント (0)
- ¦
- トラックバック (0)
- トラックバック用URL:
- http://takanory.net/takalog/1279/tbping
鈴木たかのりです。とりあえず日記っぽく雑多なことを書き込んでいこうと思っています。
zope/plone関係の技術的な内容については