バージョン選択

フォーラム

メニュー

オンライン状況

39 人のユーザが現在オンラインです。 (31 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 39
もっと...

サイト内検索

質問 > その他 > 受注管理からのメール送信の本文変更

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
slvta
投稿日時: 2017/8/31 14:33
対応状況: −−−
新米
登録日: 2017/8/28
居住地:
投稿: 5
受注管理からのメール送信の本文変更
受注管理からメール送信した際の本文を変更したいと思っています。

新たに本文用のtwigファイル(contact.twig)を作成し、データベースのdtb_mail_templateテーブル「file_name」もMail/contact.twigに変更したのですが、参照される本文ファイルはorder.twigのまま変わりません。

どうやったら変更できるかご教示お願いできますでしょうか。

よろしくお願いします。


EC-CUBE
3.0.15
サーバーOS
Linux cpanel-centos7
DBサーバー
MySQL 5.6.37
WEBサーバー
Apache
PHP
5.6.31
468
投稿日時: 2017/9/1 13:15
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 受注管理からのメール送信の本文変更
/src/Eccube/Controller/Admin/Order/MailController.php 355行目の
function createBody()の中で、Mail/order.twigを直接指定しているところがありますので、
ここを変更すれば、twigの読込先が変わると思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

slvta
投稿日時: 2017/9/1 14:26
対応状況: 確認中
新米
登録日: 2017/8/28
居住地:
投稿: 5
Re: 受注管理からのメール送信の本文変更
ご教示いただきありがとうございます。

教えていただいた部分を変更しましたら確かに変更できました。

テンプレートごとに動的に参照ファイルを変えるというのは難しそうでしょうか?
468
投稿日時: 2017/9/4 19:37
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 受注管理からのメール送信の本文変更
/src/Eccube/Service/MailService.php 238行目付近のように
mail_templateテーブルの情報を参照するようにすれば、
動的に変更するのは可能では無いでしょうか?

find()に渡すIDを画面(リクエスト)から取得すれば、動的に変更できると思います。

詳しく処理を見ていないので、何とも言えないのですが、
MailController.phpの中にはテンプレートの切り替えの処理があるようにも見えなくないのですが、
結局、送信時には、Mail/order.twigを使っている感じでしょうか?


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

slvta
投稿日時: 2017/9/14 11:32
対応状況: −−−
新米
登録日: 2017/8/28
居住地:
投稿: 5
Re: 受注管理からのメール送信の本文変更
返信遅くなりまして申し訳ございません。

ご教示いただきました処理を施しましたが、僕の技術が足りないせいでエラーが出てまだうまくいっていません。。。
もう少し試してみます。

>結局、送信時には、Mail/order.twigを使っている感じでしょうか?
→そうです。dtb_mail_templateテーブルのfile_nameを変更してもMail/order.twigで本文が作成されてしまいます。
468
投稿日時: 2017/9/14 18:03
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 受注管理からのメール送信の本文変更
もし、私がソースを改修するのであれば、
MailController.phpの95行目と267行目の
                        $body = $this->createBody($app, $data['header'], $data['footer'], $Order);

                        $MailTemplate = $form->get('template')->getData();

の箇所を
                        $MailTemplate = $form->get('template')->getData();
                        
                        $body = $this->app->renderView($MailTemplate->getFileName(), array(
				            'header' => $data['header'],
				            'footer' => $data['footer'],
				            'Order' => $Order,
		        ));

に書き換えて、
bodyを組み立てる前にメールテンプレートをフォームから取り出して、利用するようにすると思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,284名です
総投稿数は109,688件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1567
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.