バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

プラグイン > 開発について > EC-CUBE3のテンプレートに渡された変数一覧を取得する方法

開発について

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ikemoto
投稿日時: 2015/10/8 1:03
対応状況: −−−
一人前
登録日: 2015/10/2
居住地:
投稿: 79
EC-CUBE3のテンプレートに渡された変数一覧を取得する方法
お世話になります。
現在EC-CUBE(3.03バージョン)のプラグインを作る際、テンプレート側で引き渡される変数を一覧にて確認したいのですが、どのようにすれば良いでしょうか?

つまり、Smartyだと{debug}に該当する機能と同様のものて内容を見たいのです。

index_dev.phpを通してアクセスした場合、twigのdump extension が有効になるようでしたので(実際にdebug=Trueの状態であることと、有効になる処理を通っていたことも確認済み)、テンプレートに{{ dump() }}を記載すれば確認できるかと思って試してみましたが、エラーとなりました。
tacky
投稿日時: 2015/10/8 7:11
対応状況: −−−
長老
登録日: 2015/10/3
居住地: Tokyo
投稿: 277
Re: EC-CUBE3のテンプレートに渡された変数一覧を取得する方法
画面上に出るエラーは何て出ていますか?

変数の出力はindex_dev.phpの状態で下記で表示されると思います。
テンプレート側
{{ dump($変数) }}
コントローラー側
print_r($変数);
ikemoto
投稿日時: 2015/10/8 9:19
対応状況: −−−
一人前
登録日: 2015/10/2
居住地:
投稿: 79
Re: EC-CUBE3のテンプレートに渡された変数一覧を取得する方法
インストール直後の環境にて、「ページ管理」の「商品一覧ページ」内に
{% block main %}
{{dump(pagination)}}
と記述し、当方インストール環境での商品一覧ページである
http://127.0.0.1/workshop/index.php/products/list
…にアクセスしました。

すると、
システムエラーが発生しました
大変お手数ですが、サイト管理者までご連絡ください。
の画面が表示されました。

エラーログの方には
[2015-10-08 09:12:23] myapp.CRITICAL: Twig_Error_Syntax: The function "dump" does not exist
in "Product/list.twig" at line 45 (uncaught exception)
at W:\projects\workshop\workshop_project\vendor\twig\twig\lib\Twig\ExpressionParser.php line 578
{"exception":"[object] (Twig_Error_Syntax(code: 0): The function \"dump\" does not exist
in \"Product/list.twig\" at line 45
at W:\\projects\\workshop\\workshop_project\\vendor\\twig\\twig\\lib\\Twig\\ExpressionParser.php:578)"} []

…と表示されています。

ご指摘の{{dump($pagination)}} の方だと、
エラーログが「Unexpected character \"$\」という内容となります。

問題点等ありましたらお手数ですがご指摘ください。
tacky
投稿日時: 2015/10/8 9:48
対応状況: −−−
長老
登録日: 2015/10/3
居住地: Tokyo
投稿: 277
Re: EC-CUBE3のテンプレートに渡された変数一覧を取得する方法
デバッグモードでしかdumpが使えないため、アクセスするURLは下記になります。
http://127.0.0.1/workshop/index_dev.php/products/list

すいません。「$」いりませんでした。
{{dump(pagination)}}
でOKです。
ikemoto
投稿日時: 2015/10/8 10:42
対応状況: −−−
一人前
登録日: 2015/10/2
居住地:
投稿: 79
Re: EC-CUBE3のテンプレートに渡された変数一覧を取得する方法
こちらこそURLミスすみません。
index_dev.phpでアクセスした場合なのですが、
エラーも出ず空白画面になります。

このとき、phpのエラーログに

PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 110100480 bytes) in W:\projects\workshop\workshop_project\vendor\twig\twig\lib\Twig\Extension\Debug.php on line 66

と出るので、memory_limitの値をかなり大きめにして再試行してみましたが、増えたメモリ分だけ待ち時間が増えるだけで、やはり空白画面になりました。

これは、pagenation内の内容が膨大過ぎてvar_dumpで展開しきれないということなんでしょうか…
tacky
投稿日時: 2015/10/8 10:54
対応状況: −−−
長老
登録日: 2015/10/3
居住地: Tokyo
投稿: 277
Re: EC-CUBE3のテンプレートに渡された変数一覧を取得する方法
はい、$paginationの内容は膨大です。。。
表示させたいのであれば、ProductControllerの69行目の$paginationの代入より下に
print_r($pagination);
と掛けば内容が表示されますが、膨大です。

paginationの特定の変数を取得は出来ますので、参考に
{{ dump(pagination.totalItemCount) }}
と掛けば商品カテゴリの商品点数が出てきますよ。
ikemoto
投稿日時: 2015/10/8 11:09
対応状況: 解決済
一人前
登録日: 2015/10/2
居住地:
投稿: 79
Re: EC-CUBE3のテンプレートに渡された変数一覧を取得する方法
そういうことでしたか!
一番最初に{{debug()}}で全部見ようとしてましたが、それだともっとひどいことになりますね…。
テンプレ側で全部の変数を見て必要なものをヒックアップするつもりだったのですが、それよりも呼び出し元を見て、変数を引き渡している箇所からピンポイントで探るべきってことですね。
ソースコードの方をまず確認して、必要な箇所を絞るようにしてみます。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
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.