Help us understand the problem. What is going on with this article?

[baserCMS] メールフォームの通知メールにフィールドの値を入れる

More than 3 years have passed since last update.

baserCMSの複数設置可能な便利メールフォームは、その着弾メールの件名に、任意のフィールドの値を入れ込むことができます。

想定している対象者

  • baserCMSでウェブサイトを制作をしている方

発生状況

  1. 通知メールの件名に、公開側のフォームで入力・選択した値を設定したい場面

環境

  • baserCMS 3.0.9

設定の仕方

メールフォーム設定画面(例: /admin/mail/mail_contents/edit/ID)で設定できる自動返信メールの「件名」に、以下の形式でフィールド名を入力する。

{$name}

上記の例は、フィールド一覧画面(/admin/mail/mail_fields/index/ID)にフィールド名「name」が存在する場合の例です。

フィールドタイプ別に確認してみた結果

  • [OK] テキスト
  • [OK] ラジオボタン
  • [OK] セレクトボックス
  • [NG] マルチチェックボックス

気になったのでソース探索。
/lib/Baser/Plugin/Mail/Controller/MailController.php の _sendEmail() に以下があった。
配列形式のフィールドは未対応だと判りました。

// 件名にフィールドの値を埋め込む
// 和暦など配列の場合は無視
if (!is_array($value)) {
    if ($mailField['MailField']['type'] == 'radio' || 
          $mailField['MailField']['type'] == 'select') {
        $source = explode('|', $mailField['MailField']['source']);
        $mailContent['subject_user'] = str_replace('{$' . $field . '}', $source[$value-1], $mailContent['subject_user']);
        $mailContent['subject_admin'] = str_replace('{$' . $field . '}', $source[$value-1], $mailContent['subject_admin']);
    } else {
        $mailContent['subject_user'] = str_replace('{$' . $field . '}', $value, $mailContent['subject_user']);
        $mailContent['subject_admin'] = str_replace('{$' . $field . '}', $value, $mailContent['subject_admin']);
    }
}
Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away