バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > その他 > プラグインのイベント処理でデータをtwigに渡したい

その他

新規スレッドを追加する

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
bigslope
投稿日時: 2017/3/1 17:02
対応状況: −−−
常連
登録日: 2016/12/9
居住地:
投稿: 44
Re: プラグインのイベント処理でデータをtwigに渡したい
ありがとうございました。
umebius
投稿日時: 2017/3/1 15:39
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: プラグインのイベント処理でデータをtwigに渡したい
そういった目的だったのですね。
解決して良かったです!


----------------
EC-CUBEカスタマイズ・高速化・脆弱性対策・SEO ご相談ください。

2系・3系から4系へのバージョンアップ実績豊富

bigslope
投稿日時: 2017/3/1 15:36
対応状況: −−−
常連
登録日: 2016/12/9
居住地:
投稿: 44
Re: プラグインのイベント処理でデータをtwigに渡したい
ポイントプラグインのフックポイント内で、
データは、$event->getArgument('pagination')で取得して、
$event->setArgument("point",$tmp) でポイント数を設定すると、

フックポイントの呼び出し側(おすすめ商品管理プラグイン)で、

$event = new EventArgs(
array(
'pagination' => $arrRecommendProduct,
),
null
);
$app['eccube.event.dispatcher']->dispatch(EccubeEvents::FRONT_RECOMMEND_LIST, $event);
$point = $event->getArgument('point');

return $app->render('Block/recommend_product_block.twig', array(
'recommend_products' => $arrRecommendProduct,
'forms' => $forms,
'point' => $point,
));

とすると、
おすすめ商品管理プラグイン内から、ポイントプラグインをフックポイントで呼び出して、商品ごとのポイント数を取得し、twigで表示させることが出来ました。
468
投稿日時: 2017/3/1 15:08
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: プラグインのイベント処理でデータをtwigに渡したい
横から失礼します。
今までいくつかプラグインを開発していますが、
個別フックポイント内の処理でtwigに対して、
新しい変数を追加して渡した事が無いのですが、出来ないのでは無いでしょうか?

umebiusさんがおっしゃられるようにテンプレートフックポイントであれば、
$event->setParameters($parameters);
で渡せると思うのですが・・・。

もしくは、共通フックポイントのresponseイベントでもTwigに値を渡せると思います。


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

bigslope
投稿日時: 2017/3/1 8:45
対応状況: −−−
常連
登録日: 2016/12/9
居住地:
投稿: 44
Re: プラグインのイベント処理でデータをtwigに渡したい
>$pagination = $event->getArgument('pagination');
>あと、これは値取れているのでしょうか?

はい、取れています。

呼び出し元は、
$event = new EventArgs(
array(
'pagination' => $arrRecommendProduct,
),
null
);
$app['eccube.event.dispatcher']->dispatch(EccubeEvents::FRONT_RECOMMEND_LIST, $event);

なので、'pagination' という名前で、データを渡しています。



>twigのTemplateEventに変数渡すのは$event->setParameters($parameters);ですね。

呼び出される側のプラグイン側のイベント関数の、パラメータのデータ型が、
EventArgs $event
となっているので、TemplateEventではなく、EventArgs ですよね?
なので、getArgument() でデータを取得しています。
また、setParameters()が使えません。

tiwgにデータを渡すのは、setParameters()でないと渡せないのでしょうか?

すみません、この辺りがよく理解できていないのですが、教えていただければ幸いです。
umebius
投稿日時: 2017/3/1 1:29
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: プラグインのイベント処理でデータをtwigに渡したい
あ、申し訳ございません。確かに読み返してみたら間違いが。
twigのTemplateEventに変数渡すのは$event->setParameters($parameters);ですね。

引用:

$event->setArgument($parameters);
の箇所で、エラーが発生しているようです。

引数が1つしかないからでは?

$pagination = $event->getArgument('pagination');
あと、これは値取れているのでしょうか?
EventArgsにpaginationは渡されてなかったように記憶していますが。


----------------
EC-CUBEカスタマイズ・高速化・脆弱性対策・SEO ご相談ください。

2系・3系から4系へのバージョンアップ実績豊富

bigslope
投稿日時: 2017/3/1 1:21
対応状況: −−−
常連
登録日: 2016/12/9
居住地:
投稿: 44
Re: プラグインのイベント処理でデータをtwigに渡したい
「Product/list.twig」だと、イベントの型が、TemplateEvent $eventなので、
$parameters = $event->getParameters();
$event->setParameters($parameters);
とすれば、うまくいきますが、

イベントの型が、EventArgs $eventだと、
$pagination = $event->getArgument('pagination');
$event->setArgument($pagination);
でエラーになり、うまくいきません。

$event->setArgument($parameters);
の箇所で、エラーが発生しているようです。
umebius
投稿日時: 2017/2/28 23:26
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: プラグインのイベント処理でデータをtwigに渡したい
twig側にデータを渡すには、「Product/list.twig」のようなテンプレートイベントに対してevent.ymlでフックして、$event->setArgument($parameters);すれば良いかと思います。


----------------
EC-CUBEカスタマイズ・高速化・脆弱性対策・SEO ご相談ください。

2系・3系から4系へのバージョンアップ実績豊富

bigslope
投稿日時: 2017/2/28 23:15
対応状況: −−−
常連
登録日: 2016/12/9
居住地:
投稿: 44
プラグインのイベント処理でデータをtwigに渡したい
プラグインのイベント処理でデータをtwigに渡したい
あるプラグインのイベント処理関数で、twig側にデータを返したいのですが、どのようにすればよいでしょうか?



プラグインのイベント処理関数
public function hogehoge(EventArgs $event)
{
$parameters = $event->getArgument('pagination');
$parameters["test"] = "テスト";
$event->setArgument($parameters);
}

では、ダメでした。
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,288名です
総投稿数は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.