バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > ヘッダに「現在のカゴの中」の数量のみを設置するには・・・。

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
kabotya
投稿日時: 2014/5/1 15:48
対応状況: −−−
新米
登録日: 2014/4/2
居住地:
投稿: 3
ヘッダに「現在のカゴの中」の数量のみを設置するには・・・。
[EC-CUBE] 2.13.1
[レンタルサーバ] ローカル環境
[PHP] PHP 5.3.6
[データベース] MySQL 55.5.13
[WEBサーバ] apache 2.2.17
[EC-CUBE歴]初心者かつ素人

いつもお世話になっております。
現在、某大型ファッション通販サイトのデザインを真似てサイトを作成しているのですが、ヘッダに数量のみ表示する買い物かごを設置するにはどうすればよろしいでしょうか?

ブロックcart.tplから数量を表示していると思うソースをheader.tplに貼ったのですが、いくらカゴに商品を入れても数量が0で変動しません。

【header.tpl】
<a href="<!--{$smarty.const.TOP_URL}-->cart/" class="mem3">
<span class="kago00">カート</span>
<span class="kago01"><!--{$arrCartList.0.TotalQuantity|number_format|default:0}--></span>

どのようにすれば反映するのでしょうか?
御教示お願い致します。
miiitaka
投稿日時: 2014/5/1 16:43
対応状況: −−−
一人前
登録日: 2011/10/17
居住地: 宮崎県宮崎市
投稿: 94
Re: ヘッダに「現在のカゴの中」の数量のみを設置するには・・・。
kabotya さん

おそらく、ヘッダーカートのブロックの記述をそのまま持ってきたと思うのですが、それでしたらヘッダーのテンプレートを呼び出しているPHPでカート情報を渡すプログラムを記述しないといけませんね。


----------------
無料で学べるEC-CUBEノウハウ - EC-CUBEの学校
アラタナ

kabotya
投稿日時: 2014/5/1 18:59
対応状況: −−−
新米
登録日: 2014/4/2
居住地:
投稿: 3
Re: ヘッダに「現在のカゴの中」の数量のみを設置するには・・・。
レスポンスありがとうございます。
未だにsmartyのロジックやらPHPの動きを捉えきれてませんが、header.tplを呼び出しているPHPは
・header.php
・LC_Page_Admin_Design_Header.php
・LC_Page_Admin_Design_Header_EX.php
の3つであっているでしょうか?
kabotya
投稿日時: 2014/5/2 14:31
対応状況: −−−
新米
登録日: 2014/4/2
居住地:
投稿: 3
Re: ヘッダに「現在のカゴの中」の数量のみを設置するには・・・。
>>・header.php
>>・LC_Page_Admin_Design_Header.php
>>・LC_Page_Admin_Design_Header_EX.php

自分が書いているのは管理画面のヘッダーみたいですね、申し訳ございません。
今カートの拡張クラス等触っているのですが、上手くいきません。
どのファイルにどう記述すれば、うまく反映するでしょうか?
tommy0714
投稿日時: 2014/5/6 15:01
対応状況: −−−
半人前
登録日: 2014/5/1
居住地:
投稿: 30
Re: ヘッダに「現在のカゴの中」の数量のみを設置するには・・・。
EC-CUBEデフォルトではできないので、プログラムのカスタマイズが必要です。例えば、

data/class_extends/page_extends/LC_Page_Ex.php

	public function process()
	{
		parent::process();
		
		$objCartSess = new SC_CartSession_Ex();
		$product_type_ids = $objCartSess->getKeys();
		$quantity_total = 0;
		foreach($product_type_ids as $product_type_id){
			$quantity_total += $objCartSess->getTotalQuantity($product_type_id);
		}
		$this->tpl_cart_quantity_total = $quantity_total;
	}



のように拡張しておいて、

data/Smarty/templates/default/header.tpl


<!--{$tpl_cart_quantity_total|number_format|default:0}-->


のようにテンプレート変数を埋め込めば表示可能です。


ちなみに、2.13系をお使いのようですので、プラグイン作成の知識がおありでしたら、ソースコードをプラグインで分離することで汎用性がより高まります。
smashin
投稿日時: 2014/8/29 9:04
対応状況: −−−
新米
登録日: 2014/8/29
居住地:
投稿: 9
Re: ヘッダに「現在のカゴの中」の数量のみを設置するには・・・。
お世話になります。
投稿者の方と同じ内容で悩んでおりましたので、参照させて頂きました。

tommy0714様のソースを試してみたところ、確かにカゴの中の数量が表示されるようにはなったのですが、購入個数制限をかけている商品をかごに入れた際に誤差が生じてしまうようです。

【例】
購入制限5個までのものを10個かごに入れた直後に、かごのブロック内では5個と正常に表示されるが、ヘッダは10個と表示されてしまう。

もし、どなたか解決策をご存知であればお教え頂けますと幸いです。
yuh
投稿日時: 2014/8/29 11:38
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: ヘッダに「現在のカゴの中」の数量のみを設置するには・・・。

			$quantity_total += $objCartSess->getTotalQuantity($product_type_id);
の前に

$objCartSess->checkProducts($product_type_id);

を追加してみてください
smashin
投稿日時: 2014/8/29 13:59
対応状況: −−−
新米
登録日: 2014/8/29
居住地:
投稿: 9
Re: ヘッダに「現在のカゴの中」の数量のみを設置するには・・・。
ご返信頂きましてありがとうございました。

yuh様にお教え頂いたように追加したところ、数量が正常に表示されるようになりました。
お忙しいところご対応頂きまして、ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

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