今回のbaserCMSスキマ産業活動は、メールフォームの署名機能にちょっと目を向けてみました。
作ってみたのは「メールサインスウィッチ プラグイン」です。
きっかけはこちらのTweet。
baserCMSのメールフォーム、超絶使いやすいんだけど署名トラップにまたハマった。
サイトの設定が反映されない!ってコアファイルの中身まで触ってたけど、メールプラグイン設定の中で署名設定できるのを毎回忘れてしまう。
(だいたいテスト送信してクライアントさんから指摘されて気づく)
— 俳人 我流 (@Garyuten) 2015, 4月 22
そういえばbaserCMSの署名設定は、メールフォームの設定画面とは別に準備されているなぁ、と。
その問題解決として、メールフォーム個別の設定画面内で署名が設定できるようにしてみたらどうだろう?と思ったんで作ってみました。
メールフォーム別に備えることになるので、署名もフォーム毎に持てるカタチ。
複数のメールフォームを設置して、Aフォームでは日本語の署名、Bフォームでは英語の署名とか、フォーム毎に担当部署が異なるので、署名内容を変えておきたい、という場面が挙げられます。
メールサインスウィッチ プラグイン
メールサインスウィッチ プラグインは、メールフォーム別に利用する署名を設定できるbaserCMS専用のプラグインです。。。。です。
■ https://github.com/materializing/MailSignSwitch
■ プロジェクト管理
ファイルのダウンロードはいつものgithubよりどうぞ。
動作環境
- baserCMS 3.0.7
- PHP 5.4.19
- MySQL 5.5.33
インストール(使い方)
- 圧縮ファイルをDLして解凍したら、/app/Plugin/MailSignSwitch に配置します。
- baserCMS管理システムに入ります。
- プラグイン管理に入ります。
- メールサインスウィッチ プラグインを有効化します。
- メールフォーム設定編集画面に入ります。
- 画面下部に「署名設定」が追加表示されてますので、メールフォーム別に署名内容を設定できます。
その他の動作
- プラグインインストール時は、メールフォーム基本設定で設定されている署名内容が、メールフォーム個別に設定されます。
- メールフォーム基本設定で設定されている署名内容が、各入力欄の placeholder として表示されます。
メールサインスウィッチ プラグイン についてのご意見・問合せ先
以下にて気軽にどうぞー ・ω・
バグ報告、機能要望、感想とかなんでも受け付けてマス。
作成裏話(表に出しちゃってるけど裏話)
baserCMSのイベント処理に、dispatchAfterForm というイベントがあります。
これは、管理側の入力・編集画面内のフォームで、入力欄の最後に処理を差し込むことができるイベントです。
今回は、このイベント処理を用いてプラグイン側に用意しているエレメントを表示させてみました。
Form.afterForm と Form.afterOptionForm の2種類があって、Optionとついてる側は、画面内の「オプション」をクリックして表示される範囲側の最後に当たる作りとなってるようですね。
それから、ModelEventの処理は、最近 @gondoh_jpよりアドバイスを受け内容を早速反映したのです。
あとがき
MailConfigのテーブルを覗いてみてわかったことは、署名設定は1レコードに収められてること。
このテーブルに外部キー備えたら、フォーム別の署名はできるのです。
が、それはシンプルなbaserCMSの考え方とは反するのかもですね。わかんないけど。