バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 規格別の値段の一覧表示

フロント機能

新規スレッドを追加する

| 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ゲスト
投稿日時: 2009/5/14 14:04
対応状況: −−−
規格別の値段の一覧表示
連続すいません。

いつもお世話になっております。

規格別の値段の一覧表示についてです。

http://www.geocities.jp/sugachan1973/doc/funto65.html

上記のサイト様の 「改造その2・規格別の値段の一覧表示」(ページ中部付近にあります)
を参考に、規格別の値段を一覧表示できるように
プログラムを変更しようとしたのですが、

バージョンの違いのせいか 指定されているファイルに
プログラムの表記がないのです。

私のバージョンはeccube-2.3.4なのですが、
参考にさせていただいた方のバージョンはEC-CUBE-1.3.4のようなのです。

まず 一番初めに指定されているhtml/products/list.php の
ファイルにあるプログラムが バージョンeccube-2.3.4だと
どこで定義しているのか教えていただきたく。

また、eccube-2.3.4 のバージョンで規格別の値段の一覧表示を
つくられた方がいましたらご教授いただきたく。
よろしくお願いいたします。
EC-First
投稿日時: 2009/5/14 16:44
対応状況: −−−
新米
登録日: 2009/5/14
居住地: 東京都豊島区
投稿: 7
Re: 規格別の値段の一覧表示
/data/class/Page/products/LC_Page_Products_Detail.phpに
/* 商品規格情報の取得2 */
    function lfGetProductsClassAll($product_id) {
        $arrRet = array();
        if(SC_Utils_Ex::sfIsInt($product_id)) {
            // 商品規格取得
            $objQuery = new SC_Query();
            $col = "*";
            $table = "vw_cross_products_class";
            $where = "product_id = ?";
            $objQuery->setorder("rank1 DESC, rank2 DESC");
            $arrRet = $objQuery->select($col, $table, $where, array($product_id));
        }
        return $arrRet;
    }

を追記して、lfMakeSelect()内に
$this->arrProductsClasslist = $this->lfGetProductsClassAll($product_id);

を足します。

/data/Smarty/templates/default/detail.tplの表示させたい箇所に
		<!--{if $arrProductsClasslist}-->
			<table style="width: auto;">
				<tr>
				<th>規格名</th><th>価格</th>
				</tr>
			<!--{section name=i loop=$arrProductsClasslist}-->
				<tr><td><!--{$arrProductsClasslist[i].name1}-->
					<!--{if $arrProductsClasslist[i].name2}-->
					:<!--{$arrProductsClasslist[i].name2}-->
					<!--{/if}-->
				</td>
				<td>
				<!--{$arrProductsClasslist[i].price02}-->円
				</td>
				</tr>
			<!--{/section}-->
			</table>
		<!--{/if}-->

を追記します。

EC-CUBE2.3.3、PostgreSQL 8.1.11で動作確認しました。


----------------
-PR-
ゲオEショップのノウハウをEC-CUBEに!
EC-CUBEカスタマイズパッケージEC-First CUBE

ゲスト
投稿日時: 2009/5/15 13:16
対応状況: −−−
Re: 規格別の値段の一覧表示
> EC-First 様

お世話になっております。

引用:

lfMakeSelect()内に
$this->arrProductsClasslist = $this->lfGetProductsClassAll($product_id);

を足します。


とありますが、
これは
function lfMakeSelect($product_id) {
の部分でしょうか?
それとも
$this->lfMakeSelect($tmp_id);
の部分でしょうか?

ちなみに、上記のほうにいれ、ためしたところ、
エラーが出てしまい、下記のほうでためしたところ、変化が
見られない状態でした。

lfMakeSelect()内にどのように文章を足したのか、教えていただければ幸いです。
よろしくお願いいたします。
kishik
投稿日時: 2009/5/15 13:29
対応状況: −−−
仙人
登録日: 2009/4/3
居住地: 東京
投稿: 382
Re: 規格別の値段の一覧表示
EC-Firstさんの書いているプログラム(の流れ)を
理解することが大切だと思いますよ。

process()内で
$this->lfMakeSelect($tmp_id);
を呼んでいるから、
処理がlfMakeSelectに移る。
その内部で商品規格情報の取得を拡張するために
$this->arrProductsClasslist = $this->lfGetProductsClassAll($product_id);
として、
lfGetProductsClassAllを呼び出す部分を付け加えている。
あとはlfGetProductsClassAllの実装。

これがEC-Firstさんの投稿に書かれています。
なので、
function lfMakeSelect($product_id) {
に書くのが正解ですが、
それでエラーが出るのなら、
次はエラーの内容を調べるのが先ですね。

どのようなエラーが出ているのですか?


-----
カスタマイズ承ります
http://ec-cube-mall.jp/
http://ec-cube.ec-orange2.jp/
http://wiki.ec-orange2.jp/
ゲスト
投稿日時: 2009/5/15 14:07
対応状況: −−−
Re: 規格別の値段の一覧表示
> kishik  様
いつもお世話になっております。

エラー文章は下部の文章です。
(エラーのでるタイミングは 商品の詳細はこちら のボタンを
押したときです。)

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

デバックモードを true にしたのですが、 エラー文が出力されませんでした
エ・・エラー文章の出し方をちょっと調べますので、
少々お待ちいただければ幸いです;;
ゲスト
投稿日時: 2009/5/15 14:22
対応状況: −−−
Re: 規格別の値段の一覧表示
エラーなのですが

Fatal error: Call to undefined method LC_Page_Products_Detail_Ex::lfGetProductsClassAll() data/class/pages/products/LC_Page_Products_Detail.php on line 509

とでます。

このライン509にあるのは

$this->arrProductsClasslist = $this->lfGetProductsClassAll($product_id);

です。

書き方として

function lfMakeSelect($product_id) {
$this->arrProductsClasslist = $this->lfGetProductsClassAll($product_id);

としたのですが、書き方に不適切な部分があるのでしょうか;
tao_s
投稿日時: 2009/5/15 14:30
対応状況: −−−
仙人
登録日: 2008/8/20
居住地: 東京
投稿: 799
Re: 規格別の値段の一覧表示
lfMakeSelect()内に
$arrProductsClass = $this->lfGetProductsClass($product_id);

があるので、その直下あたりに書けば問題無さそうです。

あとlfGetProductsClassAll()って追記してありますか?
そのメソッドが見当たらないってエラーが出ている気がするんですが・・・


----------------
EC-CUBEカスタマイズ相談してください。
緊急のEC-CUBEの障害対応
EC-CUBEカスタマイズブログ

kishik
投稿日時: 2009/5/15 14:33
対応状況: −−−
仙人
登録日: 2009/4/3
居住地: 東京
投稿: 382
Re: 規格別の値段の一覧表示
lfGetProductsClassAllが正しく定義されてませんね。

-----
カスタマイズ承ります
http://ec-cube-mall.jp/
http://ec-cube.ec-orange2.jp/
http://wiki.ec-orange2.jp/
ゲスト
投稿日時: 2009/5/15 14:55
対応状況: −−−
Re: 規格別の値段の一覧表示
> tao_s 様

お世話になっております。

$arrProductsClass = $this->lfGetProductsClass($product_id);
の下部に書きましたが、だめでした。


>とlfGetProductsClassAll()って追記してありますか?
>のメソッドが見当たらないってエラーが出ている気がするんですが・・・
下部のようにかいてありますが、 何か書き方を間違えてる気がしてしょうがありません ;


引用:

/* 商品規格情報の取得 */
function lfGetProductsClass($product_id) {
$arrRet = array();
if(SC_Utils_Ex::sfIsInt($product_id)) {
// 商品規格取得
$objQuery = new SC_Query();
$col = "product_class_id, classcategory_id1, classcategory_id2, class_id1, class_id2, stock, stock_unlimited";
$table = "vw_product_class AS prdcls";
$where = "product_id = ?";
$objQuery->setorder("rank1 DESC, rank2 DESC");
$arrRet = $objQuery->select($col, $table, $where, array($product_id));
}
return $arrRet;
}

/* 商品規格情報の取得2 */
function lfGetProductsClassAll($product_id) {
$arrRet = array();
if(SC_Utils_Ex::sfIsInt($product_id)) {
// 商品規格取得
$objQuery = new SC_Query();
$col = "*";
$table = "vw_cross_products_class";
$where = "product_id = ?";
$objQuery->setorder("rank1 DESC, rank2 DESC");
$arrRet = $objQuery->select($col, $table, $where, array($product_id));
}
return $arrRet;
}
ゲスト
投稿日時: 2009/5/15 14:59
対応状況: −−−
Re: 規格別の値段の一覧表示
> kishik 様 
お世話になっております。
tao_s様の返信にも記述しましたが、現在下部のように
記述しております。

引用:


/* 商品規格情報の取得 */
function lfGetProductsClass($product_id) {
$arrRet = array();
if(SC_Utils_Ex::sfIsInt($product_id)) {
// 商品規格取得
$objQuery = new SC_Query();
$col = "product_class_id, classcategory_id1, classcategory_id2, class_id1, class_id2, stock, stock_unlimited";
$table = "vw_product_class AS prdcls";
$where = "product_id = ?";
$objQuery->setorder("rank1 DESC, rank2 DESC");
$arrRet = $objQuery->select($col, $table, $where, array($product_id));
}
return $arrRet;
}

/* 商品規格情報の取得2 */
function lfGetProductsClassAll($product_id) {
$arrRet = array();
if(SC_Utils_Ex::sfIsInt($product_id)) {
// 商品規格取得
$objQuery = new SC_Query();
$col = "*";
$table = "vw_cross_products_class";
$where = "product_id = ?";
$objQuery->setorder("rank1 DESC, rank2 DESC");
$arrRet = $objQuery->select($col, $table, $where, array($product_id));
}
return $arrRet;
}
(1) 2 3 4 ... 6 »
| 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は89,799名です
総投稿数は110,204件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1665
8
red
1570
9
mcontact
1336
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.