バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 商品情報の項目を追加した際にlist.phpに表示させる為には

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
river555
投稿日時: 2009/10/13 12:19
対応状況: −−−
半人前
登録日: 2009/8/23
居住地: 大阪
投稿: 14
商品情報の項目を追加した際にlist.phpに表示させる為には
いつも皆さまの書き込みを拝見させて頂き日々勉強させて頂いております。

今回、商品登録の際にセレクトボックス形式の項目を新たに追加したいと考え、mtb_hogeとして項目を追加しました。
それを管理画面上に表示し商品情報の追加・編集は問題がなく行えるようになっております。

しかし、これをフロントで表示させるとmtb_hogeの値(id)が、そのまま表示されますので変換をしたいと考え、

data/class/page/products/detail.php上に

$this->arrHOGE = $masterData->getMasterData("mtb_hoge");


と追記してあげた上で、detail.tplで

<!--{$arrHOGE[$arrProduct.hoge]}-->


とsmartyで記述してあげますと商品詳細ページでは問題がなく変換され表示されました。



これと同じように商品一覧ページで表示させてあげたいと思い下記のとおりにしてみました。

data/class/page/products/list.php
$this->arrHOGE = $masterData->getMasterData("mtb_hoge");


list.tpl
<!--{$arrHOGE[$arrProducts[cnt].hoge]}-->



これを実行させてあげてますと下記のようなエラーが出てしまいます。



Fatal error: Smarty error: [in /virtual/xxxxx/public_html/ドメイン名/data/Smarty/templates/m8/list.tpl line 297]: syntax error: unrecognized tag: $arrHOGE[$arrProducts[cnt].hoge] 
(Smarty_Compiler.class.php, line 436) in /virtual/xxxx/public_html/ドメイン名/data/module/Smarty/libs/Smarty.class.php on line 1095



ちなみに、下記のように記述してあげるとデータベースに入っている値がそのままですが表示されました。

<!--{$arrProducts[cnt].hoge}-->



detail.phpでは問題がなく表示できたものの、list.phpで思い通りに表示頂けない状態です。
list.phpでも変換をした上で表示する為の方法が間違っておりますでしょうか。


【環境】

EC-CUBE 2.3.4
OS Linux
DBサーバ MySQL 5.1.22-rc
WEBサーバ Apache
PHP 5.2.5
GD Loaded
ecbg
投稿日時: 2009/10/13 13:51
対応状況: −−−
仙人
登録日: 2009/2/25
居住地: 東京
投稿: 387
Re: 商品情報の項目を追加した際にlist.phpに表示させる為には
そこまでご自身でカスタマイズされたのであれば、
data/class/page/products/list.php
上でダンプして、値の状態を確認されて、detail.phpとどう違うのか比較して、調査した方が早いかもしれませんね。
river555
投稿日時: 2009/10/13 18:46
対応状況: −−−
半人前
登録日: 2009/8/23
居住地: 大阪
投稿: 14
Re: 商品情報の項目を追加した際にlist.phpに表示させる為には
ecdg様

ご返信ありがとうございます。

mtb_hoge内には例として下記の通り追加しております。

 1 hoge01
 2 hoge02
 3 hoge03

その上で、管理画面上でセレクトボックスで選択しデータベースへインサートしてあげますと、
きちんとデータベース上では「1」と入っております。


その為、list.php上でprint_r等で出力しても「1」と表示はされるのですが、
どうしても変換だけは行って頂けません。。

恐らく、smartyの記述方法が問題かと考えておりますが。。


detail.phpではsectionでループしておりませんが、list.phpではsectionでの
ループ指定が入っております。

その為、

$arrProducts[cnt]


と入れなければもちろん値を拾うこともできません。


しかし、detail.phpの要領で

<!--{$arrHOGE[$arrProducts[cnt].hoge]}-->


としてあげるとsmartyの記述的に間違っていると思われる為にエラーが発生します。

また、data/class/page/list.php上にて下記のとおり記述してみました。


$objPage->arrProducts['hoge'] = $this->arrHOGE[$objPage->arrProducts['hoge']];


これで変換してくれればと願っておりましたが、残念ながら何も反応を起こしてくれませんでした。。


お恥ずかしいながら少々行き詰っております。
アドバイスを頂戴できると幸いでございます。

何卒、宜しくお願い致します。
pineray
投稿日時: 2009/10/13 18:59
対応状況: −−−
長老
登録日: 2006/9/9
居住地: 伊賀
投稿: 292
Re: 商品情報の項目を追加した際にlist.phpに表示させる為には
いったん仮の変数にアサインしてあげるとどうでしょう?
<!--{assign var='hogekey' value='`$arrProducts[cnt].hoge`'}-->
<!--{$arrHOGE[$hogekey]}-->


----------------
EC-CUBEのプラグインを公開しています!
いつも reCAPTCHA

river555
投稿日時: 2009/10/13 20:16
対応状況: −−−
半人前
登録日: 2009/8/23
居住地: 大阪
投稿: 14
Re: 商品情報の項目を追加した際にlist.phpに表示させる為には
pineray 様

アドバイス頂き、誠にありがとうございます。
ご提示頂きました方法を検証してみた結果をご連絡致します。

引用:

<!--{assign var='hogekey' value='`$arrProducts[cnt].hoge`'}-->
<!--{$arrHOGE[$hogekey]}-->


まず、上記のとおりsmartyで記述し書き出してみました。
しかし、何ら反応が無く改善はありませんでした。


上記で記述した場合に、どのような値が引っ張ってきているか
確認することにしてみました。


<!--{assian var='hogekey' value='`$arrProducts[cnt].hoge`'}-->
<!--{$hogekey}-->


そうすると下記のように出力されました。

`$arrProducts[cnt].hoge`



この状態では、そのままの文字列が出力されている為に変換できないと考え、


<!--{assian var=hogekey value='`$arrProducts[cnt].hoge`'}-->
<!--{$arrHOGE[$hogekey]}-->


上記のようにvarに対しシングルコーテーションを外し再度出力してみました。

すると、問題がなく変換された上での表示が出来ました。


pineray様、ecbg様には大変お手数をお掛けいたしました。
すごく助かり大変感謝しております。

まだまだ未熟者で勉強の毎日ではございますが、皆さまに追いつけるよう
少しずつ努力致します。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

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.