baserCMSのメールフォーム設定その2~テンプレート編~
baserCMSのメールフォーム設定その1~メールアドレス編~からかなり間が空きましたが、本日はこれの続編記事です。
送信メール文面やメールフォームの表示をカスタマイズしようとして、どの部分を編集すればいいのかわからない場合にご活用いただけると幸いです。
署名を変更したい
- プラグイン管理 > メールフォーム管理 > メールプラグイン基本設定
から署名に利用される項目をそれぞれ変更します。
項目にないものを署名に入れたい、または書式を変更したい場合
→送信メールの文面を直接編集します。
送信メールの件名を変更したい
同じく、
- プラグイン管理 > メールフォーム管理 > メールフォーム設定編集
から、"自動返信メール件名[ユーザー宛]"、"自動送信メール件名[管理者宛]"の項目を修正します。
送信メールの文面を変更したい
- プラグイン管理 > メールフォーム管理 > メールフォーム設定編集
の画面で、送信メールテンプレートが選択できます。初期設定では"mail_default"です。
対応するテンプレートは
app/webroot/theme/{テーマ名}/Emails/text/ 以下の
- mail_data.php
- mail_default.php
です。
mail_default.phpがメール文面の全体にあたり、このファイルの中で各メールフィールドの出力を繰り返すテンプレートであるmail_data.phpが呼ばれています。 署名やメールの文章を修正する場合はmail_default.php、お問い合わせ内容のメールフィールドの出力を細かくカスタムする場合はmail_data.phpを編集します。
Mailプラグインのテンプレートファイルを直読みしている場合
テーマによっては、送信メールの文面のテンプレートはMailプラグインの元のテンプレートに任せて、Emailsディレクトリが用意されていない場合もあります。 そのようなテーマを元に送信テンプレートを編集するには lib\Baser\Plugin\Mail\View\Emails\text以下のファイルをコピーしてきて編集しましょう。
メールフォームの表示を変更したい
- プラグイン管理 > メールフォーム管理 > メールフォーム設定編集
レイアウトテンプレートと送信メールテンプレートが選択できます。初期設定では共に"default"です。
メールフォームのコンテンツ用のテンプレートは
app/webroot/theme/{テーマ名}/Mail/{コンテンツテンプレート名}/
以下にあります
- index.php メールフォーム
- confirm..php 入力内容確認ページ
- submit.php メールフォーム送信完了ページ
- unpublish.php 非公開ページ
index.phpとconfirm.phpは共通のElementsを読み込んでいるテーマが多いです。 (元のプラグインのViewに倣った設計です)
2つそれぞれのファイルに下記記述があり、
<?php $this->BcBaser->element('mail_form') ?>
メールフォームの実体であるところの
app/webroot/theme/{テーマ名}/Elements/mail_form.php
が呼ばれていることがわかります。さらにこのファイルに
<?php $this->BcBaser->element('mail_input', array('blockStart' => 1)) ?>
が記述され、メールフィールドを繰り返し出力するテンプレートである
app/webroot/theme/{テーマ名]/Elements/mail_input.php
が呼ばれるという多段構造になっています。
テーマがMailプラグインのテンプレートファイルをそのまま利用している場合
メール送信文面と同様、テーマによってはMailプラグインのテンプレートファイルを直接読み込んでいる場合もあります。
例)
$this->BcBaser->includeCore('Mail.Mail/default/index');
そのようなテーマを元にテンプレートを変更するには、MailプラグインのテンプレートファイルをテーマディレクトリのMailディレクトリ以下およびElementsディレクトリ以下にコピーしてきて編集しましょう。
Mailプラグインのメールフォームテンプレートの場所はそれぞれ
lib/Baser/Plugin/Mail/View/Mail/default/
- index.php
- confirm.php
- submit.php
- unpublish.php
lib/Baser/Plugin/Mail/View/Elements/
- mail_form.php
- mail_input.php
です。
まとめ
テーマの中でもメールに関するテンプレートは Emailsディレクトリ、Mailディレクトリ、Elementsディレクトリに散在しており、 さらにデバイス別のテンプレート、プラグインの元のファイルの読み込みが絡んでくると少し複雑になります。
混乱してしまった場合は、公式サイトのドキュメントのテンプレートの優先順位などを参考にして 一度頭の中を整理しなおすといいと良いでしょう。