プラグイン > 開発について > Mail/xxx.twig へのフック |
開発について
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
ss764020 |
投稿日時: 2019/3/4 20:50
対応状況: 解決済
|
新米 ![]() ![]() 登録日: 2019/3/4 居住地: 投稿: 3 |
Mail/xxx.twig へのフック [EC-CUBE] 3.0.16
[サーバ] ローカル環境:windows XAMPP, 構築環境:AWS EC2 amazon linux [PHP] PHP 7.2.10 [データベース] mysql Ver 15.1 Distrib 10.1.36-MariaDB [WEBサーバ] Apache/2.4.34 [ブラウザ] Firefox (latest) [導入プラグインの有無] 独自プラグイン [カスタマイズの有無] 該当プラグインを導入 [現象] (1) 独自プラグインを開発しているのですが、一点問題が発生しまして、ご意見やアイデアなどあればと思い投稿させていただきます。 (2) 要件としては パスワードリセットメールの内容を、条件ごとに変更したい という状況です。 (3) まず最初に、下記のようにtwig呼び出しにフックして文字列置換しようと思いました。 ① event.yml にて、
② xxxEvent.php にて、
(4) ところが、 Mail/forgot_mail.twig へのフックというのはどうやら動作しないようです。 (5) Mail/forgot_mail.twig でフックできるであろう というのは、下記の記事を参考にしました。 http://blog.zamuu.net/2017/0302/eccube3_about_hooks/ (6) どうやらうまくフックできていないのでは?と思い、下記の記事を見つけました。 https://github.com/EC-CUBE/ec-cube/issues/543 twig呼び出しがrender()で実装されている箇所に関してはフックされるが、renderView()で実装されている箇所に関してはフックされないということのようです。 /src/Eccube/Service/MailService.php にて、該当箇所がrenderView()で実装されていることを確認しましたので、おそらくこれが原因であるということになるかと思います。 (※ためしに該当箇所のrenderView()をrender()に書き換えたところ、メールの内容が「HTTP/1.0 200 OK」といったものとなってしまうのですが、フックによる文字列置換はうまくいくことを確認しました) (7) どうにかうまくフックさせて文字列置換を実行する もしくは、 条件により別のtwigファイルを読み込ませる といったことができればと思うのですが、 何かよい考えやノウハウなどお持ちの方おられませんでしょうか。 |
フラット表示 | 前のトピック | 次のトピック |
題名 | 投稿者 | 日時 |
---|---|---|
» ![]() |
ss764020 | 2019/3/4 20:50 |
![]() |
umebius | 2019/3/4 21:45 |
![]() |
ss764020 | 2019/3/7 14:04 |
![]() |
umebius | 2019/3/7 17:23 |
![]() |
ss764020 | 2019/3/8 19:05 |
