PloneFormGenをいじる

PloneFormGenはPloneにカスタムフォームを手軽に設置できるプロダクトです。

基本的には部品を組み合わせてひとつのフォームをつくって入力してもらい、これをメールで送らせる、あるいはタブ・カンマ区切りのデータとして保存する、という流れになりますが、アクションアダプタと呼ばれるプラグインを自作すればそれ以外の動作をさせることも可能です(デフォルトではメーラーアダプタとデータ保存アダプタが同梱されています)。

*ただしデータ保存アダプタを利用するには少しカスタマイズする必要があります。

インストール

PloneFormGenはScriptableFieldsというプロダクトに依存しているので、これも同時にダウンロードしてインストールする必要があります。インストール自体は通常のプロダクト同様、ZopeのProductsフォルダにコピーしてZopeを再起動し、Ploneの「サイト設定」→「プロダクトの追加と削除」より行います。

*Plone 2.5.1上でPloneFormGen 1.0系以下を利用している場合はPloneFormGenフォルダ配下にある「configure.zcml.plone25」を「configure.zcml」にリネームするとすてきなことがあるそうです。

フォームの設置

PloneFormGenをインストールすると、「form folder」を追加することができるようになります。

form folderを追加する

form folderはさまざまなフォームの部品を入れるフォルダで、このフォルダ1つがフォーム1つに対応しています。

form folderの設定項目は3ページあります。

1ページ目:基本設定

 

Submit Button Label
送信ボタンのラベルです。「送信」などと入力してやればわかりやすいですかね
Show Cancel Button
キャンセルボタンを表示するかどうかを設定します
Action Adapter
送信されたフォームのデータをどうするかということを決めるために、アクションアダプタを選びます。デフォルトではメール送信するアダプタであるMailerが選択できます。
Thanks Page
フォーム送信後にサンクスページを表示するかどうかを決定します。 「None」を選ぶと、送信したデータのサマリが表示されます(データのサマリはサンクスページでも表示されます)。

 

2ページ目:decoration

ここではフォームの前後に挿入する文言等を自由に編集します。Form Prologueがフォームの上部に、From Epilogueがフォームの下部に表示されます。フォームについての説明文などを書けばよいでしょう。

3ページ目:overrides

さまざまなデフォルトの動作を上書きします。少し難しい設定なので、よくわからない場合はそのままにしておくのがよいでしょう。私は当然そのままにしておく派です(;´_つ`)

以上の設定を終えるととりあえず以下のような感じのフォームが生成されます。

作ったままのフォームフォルダ

部品を取り揃える

form folderはフォルダですから、中にはいろんなものが入っています。上記の生成したばかりのform folderには以下のものが入っています。

Mailer
メーラアダプタです。フォームの内容をメール送信するために用いられます。
Your E-Mail Address
メールアドレスを入力するためのフォームの部品です。実体は「string field」です。
Subject
題名を入力するためのフォームの部品です。実体は「string field」です。
Comments
コメントを入力するための部品です。実体は「text field」です。
Thank You
サンクスページです。

目的のフォームを作るためにはこのフォームにさまざまな部品を付け加えていく必要があります。form folder内ではさまざまな部品を追加することが可能です。

部品には以下のような種類があり、各部品では「Required(必須)」や「Hidden(隠す)」といったオプションを選ぶことができます。

Booleanフィールドはチェックボックスになります。

Boolean field

 

Date/Timeフィールドは日時を指定するオプションになります。

datetime field

 

Fileを送信できるFileフィールドなんてのもあります。

file field

 

Integerフィールドは数値入力のためのフィールドを提供します。また入力できる数値の範囲や、桁数を指定することもできます。

integer field

 

ただのラベルを追加することもできます。

label field

 

Linesフィールドは行数を指定したフィールドを提供します。

lines field

 

Multi-Selectフィールドでは見栄えを「Selectionリスト」と「チェックボックスリスト」から選ぶことができます。それぞれ以下のような感じになります。

multi select field

 

Passwordフィールドでは入力値がスターになります。

password field

 

RichLabelフィールドではRichTextを使ったラベルを生成できます。

richlabel field

 

RichTextフィールドにはRichTextを入力できます。文字数を制限できます。

richtext field

 

Selectionフィールドはそのタイプを「Selectionリスト」「ラジオボタン」「フレキシブル」から選ぶことができます。「フレキシブル」を選ぶと、選択肢の長さによって適切な見栄えにしてくれます。

selection field

 

Stringフィールドにはバリデータが最初から付いていて、メールアドレスやURLなど様々なバリデータを付与することができます。また文字数を制限することも可能です。

string field

 

Textフィールドは一般的なテキストフィールドですが、文字数を制限することができます。

text field

 

以上のように様々な部品が追加できますので、お望みのフォームを完成させることができるんじゃないでしょうか。

これ以外にも、データ送信後に表示される「サンクスページ」や送信したデータをタブ区切りのデータとして保存するための「データ保存アダプタ」を追加することができます。

アダプタを設定する

フォームで入力してもらったデータをどう処理するのかは様々ですが、PloneFormGenのデフォルトではメールで送ることになっています。このメール送信機能を提供しているのが「メーラアダプタ」です。

form folderに入って「コンテンツ」タブをクリックすると、その中にメーラアダプタが見えます(「Mailer」というやつ)。これをクリックするとメーラアダプタが表示されます。さらに「編集」タブをクリックすればメーラアダプタを設定することができます。

 

基本設定
メーラアダプタのショートネームやタイトルを設定します
addressing
送信先のアドレスや名前、CCやBCCなどを設定します
message
件名や本文などを設定します
template
HTMLメールを送るためのテンプレートを設定します
headers
メールヘッダを設定します
encryption
暗号化のためのキーを設定します

 

以上を設定すれば、フォームに入力された値が設定したメール先へ送信されます。

アダプタを変更する

デフォルトではメールアダプタが採用されますが、統計などで利用する場合にはデータとして保存した方が後々便利でしょう。こういう場合にはデータ保存アダプタを利用します。

データ保存アダプタを利用するには、form folder内で「新規アイテムを追加」から「Save Data Adapter」を選びます。データ区切りにはタブ区切りとカンマ区切りが選べるのでよっぽど大丈夫でしょう。

で、追加しようと思ったら何故か追加できませんでした…(*´Д`)

エラーログを見てみると何故かAnonymousと認識されている模様。ウチのPloneがおかしいのかな?これじゃあ既存のメーラアダプタしか利用できませんな…。

まぁ、ホントはここで追加できて、form folderの「編集」タブでアダプタを変更すればいいはずです。成功した、あるいは私のここがおかしいということがわかる方おられましたら是非コメントください(´ω`)

*ちなみに同様のエラーでメーラアダプタも追加できませんでした。

サンクスページを編集する

データ送信後に表示されるサンクスページの設定は以下の3ページがあります。

 

基本設定
入力したデータの確認としてどのフィールドを表示するかを選ぶことができます(デフォルトではすべての項目を表示するようになっています)。また入力のないフィールドを表示するか否かも選ぶことができます
 decoration
データ確認表示の前後に挿入する文言等を自由に編集します。Thanks Prologueがデータ確認表示の上部に、Thanks Epilogueがデータ確認表示の下部に表示されます
no-input
必須項目に入力がなかった場合の表示を編集します
いろいろカスタマイズできて便利ですね。

 

現在既に1.1-alphaがリリースされており開発も活発そうですし、何より需要がありそうですからこのままPloneのデフォルトプロダクトに取り込まれてしまってもいいんじゃないかくらいのおもしろさです。

ここに部品のサンプルをおいておきますので興味がある人は見てみてください。ちなみにアダプタは削除してあるので送信しても何もおこりません。送信しまくるとか、いたずらはしないでくださいね…。まぁそのうちフォームまるごと削除します。

トラックバック用URL:
http://nagosui.org:8080/Nagosui/COREBlog2/ploneformgen/tbping
コメントを追加

下のフォームに記入してコメントを追加できます。平文テキスト形式。

(必須)
(必須)
(必須)
(Required)
Enter the word

このBlogについて
Plone, Zope, Pythonなどのトピックについてのメモです。
カテゴリ
Plone (98)
Plone Products (23)
COREBlog2 (31)
COREBlog1 (29)
ReadingCOREBlog (7)
Zope (66)
Turbogears (18)
Django (12)
Python (25)
Linux (30)
Nagosui (12)
Design (33)
Misc (48)
moblog (5)
最近のエントリ
浜松ブラスバンド定期演奏会2008 nyusuke 2008年11月24日
Glossy Horizontal Menuを使う nyusuke 2008年11月17日
第3回Python東海終了 nyusuke 2008年11月17日
Universalじゃない件 nyusuke 2008年11月15日
最近のコメント
Re:WebデザイナーのためのDjangoはじめの一歩 nyusuke 2007年06月01日
Re:WebデザイナーのためのDjangoはじめの一歩 pateo 2007年05月31日
Re:東海Python Workshop 01終了 nyusuke 2007年05月31日
Re:東海Python Workshop 01終了 kfuruhata 2007年05月30日