_ [EC-CUBE] EC-CUBEのヘッダへ「現在のお買い物金額」表示方法
EC-CUBEデフォルトの状態だと、ヘッダ部分へ「現在のお買い物金額」の表示ができません。
とあるサイトで実装が必要になったので、ちょっと強引ですが行った手順を公開します。
修正対象ファイル
- data/Smarty/templates/default/header.tpl
- data/class/SC_View.php
1.購入合計金額の取得と値のセット
SC_View::SC_View() 内にて、CartSessionクラスで購入合計金額を取得し、テンプレートの変数へアサインさせる。サイト情報を取得するための変数($siteinfo)によらず、SC_SiteInfoクラスを生成しているので、多少強引ですが・・・。
Index: data/class/SC_View.php
===================================================================
--- data/class/SC_View.php
+++ data/class/SC_View.php
@@ -106,6 +106,20 @@
$footer_tpl = TEMPLATE_DIR . "footer.tpl";
}
+
+ if(!is_object($this->objSiteInfo)) {
+ $this->objSiteInfo = new SC_SiteInfo();
+ }
+ $include_dir = realpath(dirname( __FILE__));
+ require_once($include_dir . "/SC_CartSession.php");
+ $objCartSess = new SC_CartSession();
+
+ // 店舗情報の取得
+ $arrInfo = $this->objSiteInfo->data;
+ // 購入金額合計
+ $arrData->CartProductsTotalPrice = $objCartSess->getAllProductsTotal($arrInfo);
+ $this->assignobj($arrData);
+
$this->assign("header_tpl", $header_tpl);
$this->assign("footer_tpl", $footer_tpl);
2.ヘッダテンプレートに表示箇所を追加
商品をカートへ追加後に表示されるカートページでは、合計金額が商品追加前の金額になるため、cart/index.tplに設定されている合計金額($tpl_total_pretax)を判定して、表示させる変数を決める。合計金額を表示させたい部分へ、以下のソースを追記。
<!--{if $tpl_total_pretax != ''}-->
<!--{assign var=total_price value="$tpl_total_pretax"}-->
<!--{else}-->
<!--{assign var=total_price value="$CartProductsTotalPrice"}-->
<!--{/if}-->
<!--{$total_price|number_format|default:0}-->円(税込)
こんな感じでできました。
┌(`Д´)ノ)゜∀゜) ashie [千尋たんハァハァ]