アークウェブさんが開発、提供する Movable Type 用メールフォーム管理用プラグイン 「A-Form」 を使う機会があったので設置方法など含めてご紹介。
A-FormプラグインはMTの管理画面から各種フォームを簡単に作成し管理できます。アンケートフォームとか、セミナー申し込みフォームとか、その都度設問内容が変わるようなフォームの管理に向いてると思います。非営利での利用なら無料、営利目的のWebサイトで使用する場合は有料です。
導入時の注意点は下記のとおり。(2008年8月18日現在のバージョンで)
- MT4.2 には対応していない
- MT4.0x だと不具合があるので MT4.1 以降が必須
- 対応する文字コードは UTF-8 のみ
- ダイナミックパブリッシングでは利用できない
- SMTP や sendmail でメール送信が可能なサーバが必要
インストールは簡単。プラグインをダウンロードしたらファイルを解凍し、下記のとおりファイルをアップロードします。
- 「plugins」 ディレクトリに、解凍ファイルの 「plugins」 フォルダ以下をすべてアップロード
- 「mt-static」 ディレクトリに、解凍ファイルの 「mt-static」 フォルダ以下をすべてアップロード
さらに、先ほどアップロードした plugins ディレクトリ内の各ファイルに実行権限を与えます。755 とか。
- plugins/AForm/aform_engine.cgi
- plugins/AForm/aform_logger.cgi
- plugins/AForm/aform_checker.cgi
あとは MT にログインすれば自動的にデータベースのアップデートが行われ、インストールが完了します。インストール後、MT にログインすると上部のメニューに 「A-Form」 が追加されてると思います。
インストールが完了したらテンプレートの準備に入ります。基本的には既存のテンプレートを使用できるようになっているので、フォームを表示したいテンプレート内の下記のテンプレートタグに A-Form 用のモディファイア、「aform="1"」を指定します。
- <$MTPageBody$> → <$MTPageBody aform="1"$>
- <$MTPageMore$> → <$MTPageMore aform="1"$>
- <$MTEntryBody> → <$MTEntryBody aform="1"$>
- <$MTEntryMore$> → <$MTEntryMore aform="1"$>
フォームの作成はこちらのチュートリアルを参考に。とても簡単にフォームを作ることができます。
あとは、MTでエントリーやウェブページを投稿する際、フォームを表示したい場所にフォームの ID と共に下記のような記述をしてあげれば、そこにフォームが挿入されます。
[[aform001]] <!--「001」の部分がフォームの ID です。-->
で、注意点ですが、フォームの確認画面は、フォームを挿入したページのテンプレートが使用されるのではなく、フォームを挿入した Blog のモジュールテンプレート内にある、「ヘッダー」 と 「フッター」 両テンプレートを読み込むようになっています。なので、この2つのテンプレートをすでに別の用途で使用していると確認画面の表示が正しく行えません。
よって、既存の Blog のエントリー内にフォームを設置したいとかでなければ、フォーム管理専用の Blog を新規で立ち上げて、ウェブページテンプレートなどでフォーム用のテンプレートを作成し、1フォーム 1ウェブページのような形で一元管理するのが一番楽で確実かもしれません。なお、A-Form の操作にはユーザー権限として、システム権限の「ブログの作成」が可能な権限が必要みたいですので、フォームの管理用にユーザーを作成する場合などは注意しましょう。
それから、フォームで出力されるソースや確認画面のカスタマイズはテンプレートファイルを直接編集すれば可能です。テンプレートは下記の場所に入っています。
plugins/AForm/tmpl/
色々ありますが、いじるとすれば下記のファイルになるでしょうか。
- aform_form.tmpl → 出力されるフォーム部分のテンプレート
- aform_confirm.tmpl → 確認画面のテンプレート
- aform_error.tmpl → エラー画面のテンプレート
- aform_finish.tmpl → 送信完了画面のテンプレート
実際に出力されてるソースとテンプレートのソースを見れば、何やってるかはわかると思います。テンプレートいじるまではやりたくないという場合は、CSS で見た目だけコントロールしてあげる方法が楽ですね。
それから、デフォルトでは Ajax で入力確認などが行われるようになっていますが、不要な場合は読み込んでいる JavaScript や CSS やエラー表示用のソースなどを削除してしまえば普通(1回ごとに画面遷移して)に動きます。
A-Form はかなり高機能なので、MT を使用していて、フォームを使用する Web サイトの制作には重宝するのではないでしょうか。あとは、確認画面で使用するテンプレートが任意で選択できたりすれば、もっと便利になると思います。