Re: レガシーフォームを複数使用する場合のメールテンプレートについて
2021年8月20日 at 14:46
今環境がないので、確認できてませんが
if($this->block->getBlockName() == 'sampleform') {
$myMailTemplate = "block_form_submission_sample";
}else{
$myMailTemplate = "block_form_submission";
}
〜
$mh->load($myMailTemplate);
@$mh->sendMail();
のように分岐してください。
Re: レガシーフォームを複数使用する場合のメールテンプレートについて
2021年8月27日 at 21:24
こんにちは。
あと、ブロック名 = メールテンプレート名にする方法もあります。
きちんと正しいブロック名をいれないといけなく、間違うとエラーになっちゃうので危険ですが・・・
$emailTemplate = $this->block->getBlockName();
// 管理者向け
$mh->load($emailTemplate);
// ユーザー向け
$mh->load($emailTemplate."_reply");
として、
applicaiton/mail/sampleform.php
applicaiton/mail/sampleform_reply.php
のメールテンプレートを使うようにするということもできます。
こうすると、メールのテンプレートを増やすだけで controller.php の改修をしなくて済みます。
パターンが多い場合はこちらがいいかもです。
あと、ブロック名 = メールテンプレート名にする方法もあります。
きちんと正しいブロック名をいれないといけなく、間違うとエラーになっちゃうので危険ですが・・・
$emailTemplate = $this->block->getBlockName();
// 管理者向け
$mh->load($emailTemplate);
// ユーザー向け
$mh->load($emailTemplate."_reply");
として、
applicaiton/mail/sampleform.php
applicaiton/mail/sampleform_reply.php
のメールテンプレートを使うようにするということもできます。
こうすると、メールのテンプレートを増やすだけで controller.php の改修をしなくて済みます。
パターンが多い場合はこちらがいいかもです。
Re: レガシーフォームを複数使用する場合のメールテンプレートについて
2021年8月30日 at 10:05
Katz Uenoさん
ありがとうございます。
それぞれ違うブロック名をつけた2つのレガシーフォームを設置しテストしたところうまくいきました。
(↓分からない人のために)
Katzさんの「標準のメールフォームに確認メール送信機能とCSVを Shift JIS に変換する機能を追加する」
http://github.com/katzueno/c5-form-support-Japanese-style
を使わせていただき、そのレガシーフォームのcontroller.phpに
$emailTemplate = $this->block->getBlockName();
を足して
$mh->load('block_form_submission_user'); を $mh->load($emailTemplate."_reply"); に変更
※↑このcontroller.phpの変更済みスクリーンショットを添付してます。
applicaiton/mail/sampleform_reply.php
を設置し、該当のレガシーフォームのブロック名をsampleformにする。
applicaiton/mail/exampleform_reply.php
を設置し、先ほどとは別のレガシーフォームのブロック名をexampleformにする。
ただ、Katzさんがおっしゃるように正しいブロック名を入れないとエラーになるし、ブロック名を入れずにレガシーフォームを設置すればそれもエラーになりますね。
ありがとうございます。
それぞれ違うブロック名をつけた2つのレガシーフォームを設置しテストしたところうまくいきました。
(↓分からない人のために)
Katzさんの「標準のメールフォームに確認メール送信機能とCSVを Shift JIS に変換する機能を追加する」
http://github.com/katzueno/c5-form-support-Japanese-style
を使わせていただき、そのレガシーフォームのcontroller.phpに
$emailTemplate = $this->block->getBlockName();
を足して
$mh->load('block_form_submission_user'); を $mh->load($emailTemplate."_reply"); に変更
※↑このcontroller.phpの変更済みスクリーンショットを添付してます。
applicaiton/mail/sampleform_reply.php
を設置し、該当のレガシーフォームのブロック名をsampleformにする。
applicaiton/mail/exampleform_reply.php
を設置し、先ほどとは別のレガシーフォームのブロック名をexampleformにする。
ただ、Katzさんがおっしゃるように正しいブロック名を入れないとエラーになるし、ブロック名を入れずにレガシーフォームを設置すればそれもエラーになりますね。
Your post has been saved and will be published after approval by the forum moderator.
Tomoyuki Oiwa
Re: Re: レガシーフォームを複数使用する場合のメールテンプレートについて
実現出来ました!
これはフォーム2種類の場合ですが、3つ以上違う返信メールで設置したい場合は
else if を使って増やせばいいですよね。