eccube3 [お問い合わせ]テンプレートに反映されないバグ

eccube3.0.17で管理画面のメールテンプレート管理から
お問い合わせ受付メールのヘッダー・フッターを変更してもメールに反映されなかったので
(多分バグ?っぽい様子。)
symfonyよくわかってないもののとりあえず動作自体はなんとかなったので書いてみる。

src/Eccube/Service/MailService.php

180行目あたりのsendContactMail

// ここをコメント、削除でもいいけど
// $body = $this->app->renderView('Mail/contact_mail.twig', array(
//   'data' => $formData,
//   'BaseInfo' => $this->BaseInfo,
// ));

$MailTemplate = $this->app['eccube.repository.mail_template']->find(5);
//dtb_mail_templateから 数値決め打ちでいいのか何ともだけど何も変更してなければ'5'でいいはず

$body = $this->app->renderView('Mail/contact_mail.twig', array( 
  // getFileNameだと'Mail/contact.twig'が入っちゃってる気がするのでファイル名はそのまま直指定
  'data' => $formData,
  'BaseInfo' => $this->BaseInfo,
  'header' => $MailTemplate->getHeader(), //ヘッダー渡す
  'footer' => $MailTemplate->getFooter() //フッター渡す
));

app/template/default/contact_mail.twig

テンプレートもそのままだと表示されないので

{{ data.name01 }} {{ data.name02 }} 様

{{ header }}

■お名前 :{{ data.name01 }} {{ data.name02 }}{% if data.kana01 or data.kana02 %} ({{ data.kana01 }} {{ data.kana02 }}){% endif %} 様
■郵便番号:{% if data.zip01 and data.zip02 %}〒{{ data.zip01 }} - {{ data.zip02 }}{% endif %}

■住所  :{% if data.pref.name is defined %} {{ data.pref.name }}{% endif %}{{ data.addr01 }}{{ data.addr02 }}
■電話番号:{{ data.tel01 }} - {{ data.tel02 }} - {{ data.tel03 }}
■メールアドレス:{{ data.email }}
■お問い合わせの内容

{{ data.contents }}

{{ footer }}

上記みたなので普通は多分大丈夫なはず。
挿入場所は適宜変えれば良いと思いますが

参考になりましたら幸いです。

webeccube

Posted by admin