> 管理機能 > ポイントプラグインに関してのご質問です。 |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
konpei |
投稿日時: 2016/9/27 0:13
対応状況: −−−
|
半人前 登録日: 2016/9/21 居住地: 投稿: 12 |
ポイントプラグインに関してのご質問です。 ポイントプラグインを利用しポイントをトップページに表示させようと思っていますがうまくいきません。。。
初めてEC-CUBE3を利用しているのですが {{ point.current >= 0 ? point.current|number_format : 0 }} と記載すれば呼び出せるのかと思いやってみましたがよびだせませんでした。 結果は0ptとなってしまいます。 おそらく呼び出すためのコントローラーに記載がないからだとは思いますがどちらに何を記載すればよろしいでしょうか? どなたかご教授宜しくお願いいたします。 環境 EC-CUBE3.0.10 |
umebius |
投稿日時: 2016/9/30 8:18
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: ポイントプラグインに関してのご質問です。 動作確認はしていませんが、プラグイン内にPointCalculateHelperというクラスがあり、そのgetPointというメソッドで保有ポイントが取得できるのではないでしょうか。
それを使ってコントローラ(TopController)でデータ渡してやれば良いのではないでしょうか。
|
konpei |
投稿日時: 2016/10/1 6:58
対応状況: −−−
|
半人前 登録日: 2016/9/21 居住地: 投稿: 12 |
Re: ポイントプラグインに関してのご質問です。 umebius様
何度もご回答ありがとうございます。 具体的にどのファイルにどういった文を加えればよろしいのでしょうか? いくつか試してみたのですがうまくいきませんでした。。。 |
umebius |
投稿日時: 2016/10/4 1:48
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: ポイントプラグインに関してのご質問です。 ファイルはトップページであればTopController.phpです。
ポイントプラグインのソースを参考にするとログインユーザーであれば以下の書き方でポイント取れます。 $app['eccube.plugin.point.repository.pointcustomer']->getLastPointById($app->user()->getId()) こちらも参考にしてみてください! https://goo.gl/jRMXgZ
|
konpei |
投稿日時: 2016/10/5 15:38
対応状況: −−−
|
半人前 登録日: 2016/9/21 居住地: 投稿: 12 |
Re: ポイントプラグインに関してのご質問です。 umebius様
ご回答ありがとうございます。 ご連絡が遅れてしまい大変申し訳ありません。 上記の内容を参考にしさせていただき class TopController { public function index(Application $app) { return $app->render('index.twig'); $point = null; if($app->isGranted('ROLE_USER')){ $point = $app['eccube.plugin.point.repository.pointcustomer']->getLastPointById($app->user()->getId()); } return $app->render('index.twig', array('point' => $point)); } } と TopController.phpに記載させていただきました。 そして {{ point.current >= 0 ? point.current|number_format : 0 }} と表示させたいところに記載しましたが表示されませんでした.... こちらはトップヘージの中に新規で作ったブロックをレイアウトで追加しそちらに表示させているのが原因となるのでしょうか? 何度も申し訳ありません。。。 宜しくお願いいたします。 |
umebius |
投稿日時: 2016/10/5 16:15
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: ポイントプラグインに関してのご質問です。 class TopController
{ public function index(Application $app) { $point = null; if($app->isGranted('ROLE_USER')){ $point = $app['eccube.plugin.point.repository.pointcustomer']->getLastPointById($app->user()->getId()); } return $app->render('index.twig', array('point' => $point)); } } コントローラー部分を以上に変えて、 表示部分をpoint.currentではなく、単にpointにしたらいかがでしょうか。
|
umebius |
投稿日時: 2016/10/5 16:23
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: ポイントプラグインに関してのご質問です。 {% if point is defined %}
... {{ point|number_format }} ... {% endif %}
|
konpei |
投稿日時: 2016/10/5 17:59
対応状況: −−−
|
半人前 登録日: 2016/9/21 居住地: 投稿: 12 |
Re: ポイントプラグインに関してのご質問です。 umebius様
ご回答ありがとうございます。 上記の内容で試した結果解決いたしました! return $app->render('index.twig'); の一文が return $app->render('index.twig', array('point' => $point)); より上にあったことによって0になってしまっていたようです。 わかりやすいご説明で助かりました! |
umebius |
投稿日時: 2016/10/5 20:41
対応状況: 解決済
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: ポイントプラグインに関してのご質問です。 よかったです!
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |