バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

プラグイン > 開発について > 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
にて、
Mail/forgot_mail.twig:
    - [onMail_forgot_mail_twig, NORMAL]



xxxEvent.php
にて、
public function onMail_forgot_mail_twig(TemplateEvent $event)
{
    $search   = 'hoge';
    $addHtml = 'fuga';
    $newHtml  = $search . $addHtml;
    $dispHtml = str_replace($search, $newHtml, $baseHtml);
    $dispHtml = str_replace($search, $newHtml, $baseHtml);
    return;
}



(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ファイルを読み込ませる


といったことができればと思うのですが、
何かよい考えやノウハウなどお持ちの方おられませんでしょうか。
フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
 » Mail/xxx.twig へのフック ss764020 2019/3/4 20:50
     Re: Mail/xxx.twig へのフック umebius 2019/3/4 21:45
       Re: Mail/xxx.twig へのフック ss764020 2019/3/7 14:04
         Re: Mail/xxx.twig へのフック umebius 2019/3/7 17:23
           Re: Mail/xxx.twig へのフック ss764020 2019/3/8 19:05

 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1569
9
mcontact
1279
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
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.