人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

eccube2.3.3について質問です。トップページに現在の売上金額や販売件数などを自動表示させたいのですが、方法を教えてください。

●質問者: kaji0245
●カテゴリ:インターネット ウェブ制作
✍キーワード:トップページ 現在 自動
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● rouge_2008
●60ポイント ベストアンサー

次のページを参考にしてブロックを追加します。

http://wiki.ec-orange2.jp/index.php?%E3%82%AB%E3%82%B9%E3%82%BF%...


1.PHPファイルの準備

・「frontparts/bloc/viewsales.php」を追加

<?php
 
require_once(CLASS_EX_PATH . "page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_Viewsales_Ex.php");
 
$objPage = new LC_Page_FrontParts_BLoc_Viewsales_Ex();
register_shutdown_function(array($objPage, "destroy"));
$objPage->init();
$objPage->process();

?>

・「data/class_extends/page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_Viewsales_Ex.php」を追加

<?php

// {{{ requires
require_once(CLASS_PATH . "pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Viewsales.php");

class LC_Page_FrontParts_Bloc_Viewsales_Ex extends LC_Page_FrontParts_Bloc_Viewsales {

 // }}}
 // {{{ functions

 /**
 * Page を初期化する.
 *
 * @return void
 */
 function init() {
 parent::init();
 }

 /**
 * Page のプロセス.
 *
 * @return void
 */
 function process() {
 parent::process();
 }

 /**
 * デストラクタ.
 *
 * @return void
 */
 function destroy() {
 parent::destroy();
 }
}
?>

・「data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Viewsales.php」を追加

<?php

// {{{ requires
require_once(CLASS_PATH . "pages/frontparts/bloc/LC_Page_FrontParts_Bloc.php");

class LC_Page_FrontParts_Bloc_Viewsales extends LC_Page_FrontParts_Bloc {

 // }}}
 // {{{ functions

 /**
 * Page を初期化する.
 *
 * @return void
 */
 function init() {
 parent::init();
 $bloc_file = 'viewsales.tpl';
 $this->setTplMainpage($bloc_file);
 }

 /**
 * Page のプロセス.
 *
 * @return void
 */
 function process() {
 $objSubView = new SC_SiteView();
 //$objDb = new SC_Helper_DB_Ex();

 $this->totalSales = $this->IfGetTotalSales();

 $objSubView->assignobj($this);
 $objSubView->display($this->tpl_mainpage);
 }

 /**
 * モバイルページを初期化する.
 *
 * @return void
 */
 function mobileInit() {
 $this->tpl_mainpage = MOBILE_TEMPLATE_DIR . "frontparts/"
 . BLOC_DIR . 'viewsales.tpl';
 }

 /**
 * Page のプロセス(モバイル).
 *
 * @return void
 */
 function mobileProcess() {
 $this->process();
 }

 /**
 * デストラクタ.
 *
 * @return void
 */
 function destroy() {
 parent::destroy();
 }

 // 売上件数と金額を取得
 function IfGetTotalSales(){
 $conn = new SC_DBconn();
 $sql = " SELECT COUNT(*) AS count, SUM(subtotal) AS subtotal, SUM(total) AS total FROM dtb_order WHERE status = 5";
 $total_sales = $conn->getAll($sql);
 return $total_sales;
 }
}
?>

※上記は受注管理でのステータスが「発送済み」になっている物だけを集計しています。

キャンセルだけを除いて集計したい場合は、「$sql = " SELECT COUNT(*) AS count, SUM(subtotal) AS subtotal, SUM(total) AS total FROM dtb_order WHERE status <> 3";」のように変更してください。


2.ブロックファイルの準備

・デザイン管理画面から「viewsales.tpl」を追加

手順は次のページを参考にします。

http://wiki.ec-orange2.jp/index.php?%E3%82%AB%E3%82%B9%E3%82%BF%...

<!-- 売上げ表示 -->
<!--{if $totalSales[0].count}-->
<div id="infosales">
 本日までに<!--{$totalSales[0].count}-->件(<!--{$totalSales[0].subtotal}-->円)売れています!
</div>
<!--{/if}-->

※デザイン管理画面から登録するとファイルが「user_data/packages/default/bloc」に作成されます。


3.ロジックとテンプレートのひも付け

phpMyAdmin等でデータベースに接続して、「dtb_bloc」テーブルを表示します。

先ほど追加した「tpl_path」が「bloc/viewsales.tpl」になっているレコードを編集します。

「php_path」に「frontparts/bloc/viewsales.php」を追加して保存してください。

ここまで終了すると、トップページに売上げ件数と金額が表示されます。


※テンプレートファイル名「viewsales.tpl」、PHPファイル名「viewsales.php」、クラス名およびファイル名等は任意です。(変更する場合は、ファイルの記述も忘れずに変更してください。)

◎質問者からの返答

詳細に説明いただきありがとうございます。

早速、作成してみます<(_ _)>

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ