文書操作
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はさまざまなフォームの部品を入れるフォルダで、このフォルダ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フィールドはチェックボックスになります。
Date/Timeフィールドは日時を指定するオプションになります。
Fileを送信できるFileフィールドなんてのもあります。
Integerフィールドは数値入力のためのフィールドを提供します。また入力できる数値の範囲や、桁数を指定することもできます。
ただのラベルを追加することもできます。
Linesフィールドは行数を指定したフィールドを提供します。
Multi-Selectフィールドでは見栄えを「Selectionリスト」と「チェックボックスリスト」から選ぶことができます。それぞれ以下のような感じになります。
Passwordフィールドでは入力値がスターになります。
RichLabelフィールドではRichTextを使ったラベルを生成できます。
RichTextフィールドにはRichTextを入力できます。文字数を制限できます。
Selectionフィールドはそのタイプを「Selectionリスト」「ラジオボタン」「フレキシブル」から選ぶことができます。「フレキシブル」を選ぶと、選択肢の長さによって適切な見栄えにしてくれます。
Stringフィールドにはバリデータが最初から付いていて、メールアドレスやURLなど様々なバリデータを付与することができます。また文字数を制限することも可能です。
Textフィールドは一般的なテキストフィールドですが、文字数を制限することができます。
以上のように様々な部品が追加できますので、お望みのフォームを完成させることができるんじゃないでしょうか。
これ以外にも、データ送信後に表示される「サンクスページ」や送信したデータをタブ区切りのデータとして保存するための「データ保存アダプタ」を追加することができます。
アダプタを設定する
フォームで入力してもらったデータをどう処理するのかは様々ですが、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のデフォルトプロダクトに取り込まれてしまってもいいんじゃないかくらいのおもしろさです。
ここに部品のサンプルをおいておきますので興味がある人は見てみてください。ちなみにアダプタは削除してあるので送信しても何もおこりません。送信しまくるとか、いたずらはしないでくださいね…。まぁそのうちフォームまるごと削除します。
- カテゴリ
-
Plone
- Plone Products
- 固定リンク
- ¦
- コメント (0)
- ¦
- トラックバック (0)
- トラックバック用URL:
- http://nagosui.org:8080/Nagosui/COREBlog2/ploneformgen/tbping

