source: branches/feature-module-update/html/rss/product.php @ 15078

Revision 15078, 7.3 KB checked in by nanasess, 17 years ago (diff)

r15064 から svn cp
とりあえず暫定コミット.

  • UTF-8 に変更
  • slib.php, glib.php のクラス化
  • LC_Page の抽象化(一部)
Line 
1<?php
2/*
3 * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
4 *
5 * http://www.lockon.co.jp/
6 */
7
8//共通部品の読み込み
9require_once("../require.php");
10
11class LC_Page{
12    function LC_Page(){
13        $this->tpl_mainpage = "rss/product.tpl";
14        $this->encode = "UTF-8";
15        $this->title = "商品一覧情報";
16    }
17}
18
19$objQuery = new SC_Query();
20$objPage = new LC_Page();
21$objView = new SC_SiteView();
22$objSiteInfo = new SC_SiteInfo();
23
24//店舗情報をセット
25$arrSiteInfo = $objSiteInfo->data;
26
27//商品IDを取得
28$product_id = $_GET['product_id'];
29$mode = $_GET['mode'];
30
31if(($product_id != "" and is_numeric($product_id)) or $mode == "all"){
32    //商品詳細を取得
33    ($mode == "all") ? $arrProduct = lfGetProductsDetail($objQuery, $mode) : $arrProduct = lfGetProductsDetail($objQuery, $product_id);
34
35    // 値のセットし直し
36    foreach($arrProduct as $key => $val){
37        //商品価格を税込みに編集
38        $arrProduct[$key]["price02"] = sfPreTax($arrProduct[$key]["price02"], $arrSiteInfo["tax"], $arrSiteInfo["tax_rule"]);
39       
40        // 画像ファイルのURLセット
41        (file_exists(IMAGE_SAVE_DIR . $arrProduct[$key]["main_list_image"])) ? $dir = IMAGE_SAVE_URL_RSS : $dir = IMAGE_TEMP_URL_RSS;
42        $arrProduct[$key]["main_list_image"] = $dir . $arrProduct[$key]["main_list_image"];
43        (file_exists(IMAGE_SAVE_DIR . $arrProduct[$key]["main_image"])) ? $dir = IMAGE_SAVE_URL_RSS : $dir = IMAGE_TEMP_URL_RSS;
44        $arrProduct[$key]["main_image"] = $dir . $arrProduct[$key]["main_image"];
45        (file_exists(IMAGE_SAVE_DIR . $arrProduct[$key]["main_large_image"])) ? $dir = IMAGE_SAVE_URL_RSS : $dir = IMAGE_TEMP_URL_RSS;
46        $arrProduct[$key]["main_large_image"] = $dir . $arrProduct[$key]["main_large_image"];
47       
48        // ポイント計算
49        $arrProduct[$key]["point"] = sfPrePoint($arrProduct[$key]["price02"], $arrProduct[$key]["point_rate"], POINT_RULE, $arrProduct[$key]["product_id"]);
50    }
51}elseif($mode == "list"){
52    //商品一覧を取得
53    $arrProduct = $objQuery->getall("SELECT product_id, name AS product_name FROM dtb_products");
54}else{
55    $arrProduct = lfGetProductsAllclass($objQuery);
56   
57    // 値のセットし直し
58    foreach($arrProduct as $key => $val){
59        //商品価格を税込みに編集
60        $arrProduct[$key]["price01_max"] = sfPreTax($arrProduct[$key]["price01_max"], $arrSiteInfo["tax"], $arrSiteInfo["tax_rule"]);
61        $arrProduct[$key]["price01_min"] = sfPreTax($arrProduct[$key]["price01_min"], $arrSiteInfo["tax"], $arrSiteInfo["tax_rule"]);
62        $arrProduct[$key]["price02_max"] = sfPreTax($arrProduct[$key]["price02_max"], $arrSiteInfo["tax"], $arrSiteInfo["tax_rule"]);
63        $arrProduct[$key]["price02_min"] = sfPreTax($arrProduct[$key]["price02_min"], $arrSiteInfo["tax"], $arrSiteInfo["tax_rule"]);
64       
65        // 画像ファイルのURLセット
66        (file_exists(IMAGE_SAVE_DIR . $arrProduct[$key]["main_list_image"])) ? $dir = IMAGE_SAVE_URL_RSS : $dir = IMAGE_TEMP_URL_RSS;
67        $arrProduct[$key]["main_list_image"] = $dir . $arrProduct[$key]["main_list_image"];
68        (file_exists(IMAGE_SAVE_DIR . $arrProduct[$key]["main_image"])) ? $dir = IMAGE_SAVE_URL_RSS : $dir = IMAGE_TEMP_URL_RSS;
69        $arrProduct[$key]["main_image"] = $dir . $arrProduct[$key]["main_image"];
70        (file_exists(IMAGE_SAVE_DIR . $arrProduct[$key]["main_large_image"])) ? $dir = IMAGE_SAVE_URL_RSS : $dir = IMAGE_TEMP_URL_RSS;
71        $arrProduct[$key]["main_large_image"] = $dir . $arrProduct[$key]["main_large_image"];
72       
73        // ポイント計算
74        $arrProduct[$key]["point_max"] = sfPrePoint($arrProduct[$key]["price02_max"], $arrProduct[$key]["point_rate"], POINT_RULE, $arrProduct[$key]["product_id"]);
75        $arrProduct[$key]["point_min"] = sfPrePoint($arrProduct[$key]["price02_min"], $arrProduct[$key]["point_rate"], POINT_RULE, $arrProduct[$key]["product_id"]);
76    }
77}
78
79//商品情報をセット
80$objPage->arrProduct = $arrProduct;
81if(is_array(sfswaparray($arrProduct))){
82    $objPage->arrProductKeys = array_keys(sfswaparray($arrProduct));
83}
84
85//店舗情報をセット
86$objPage->arrSiteInfo = $arrSiteInfo;
87
88//セットしたデータをテンプレートファイルに出力
89$objView->assignobj($objPage);
90
91//キャッシュしない(念のため)
92header("Pragma: no-cache");
93
94//XMLテキスト(これがないと正常にRSSとして認識してくれないツールがあるため)
95header("Content-type: application/xml");
96DETAIL_P_HTML;
97
98//画面表示
99$objView->display($objPage->tpl_mainpage, true);
100
101//---------------------------------------------------------------------------------------------------------------------
102/**************************************************************************************************************
103 * 関数名:lfGetProducts
104 * 説明 :商品情報を取得する
105 * 引数1:$objQuery        DB操作クラス
106 * 引数2:$product_id  商品ID
107 * 戻り値:$arrProduct  取得結果を配列で返す
108 **************************************************************************************************************/
109function lfGetProductsDetail($objQuery, $product_id = "all"){
110    $sql = "";
111    $sql .= "SELECT ";
112    $sql .= "   prod.product_id ";
113    $sql .= "   ,prod.name AS product_name ";
114    $sql .= "   ,prod.category_id ";
115    $sql .= "   ,prod.point_rate ";
116    $sql .= "   ,prod.comment3 ";
117    $sql .= "   ,prod.main_list_comment ";
118    $sql .= "   ,prod.main_list_image ";
119    $sql .= "   ,prod.main_comment ";
120    $sql .= "   ,prod.main_image ";
121    $sql .= "   ,prod.main_large_image ";
122    $sql .= "   ,cls.product_code ";
123    $sql .= "   ,cls.price01 ";
124    $sql .= "   ,cls.price02 ";
125    $sql .= "   ,cls.classcategory_id1 ";
126    $sql .= "   ,cls.classcategory_id2 ";
127    $sql .= "   ,(SELECT name FROM dtb_classcategory AS clscat WHERE clscat.classcategory_id = cls.classcategory_id1) AS classcategory_name1 ";
128    $sql .= "   ,(SELECT name FROM dtb_classcategory AS clscat WHERE clscat.classcategory_id = cls.classcategory_id2) AS classcategory_name2 ";
129    $sql .= "   ,(SELECT category_name FROM dtb_category AS cat WHERE cat.category_id = prod.category_id) AS category_name";
130    $sql .= " FROM dtb_products AS prod, dtb_products_class AS cls";
131    $sql .= " WHERE prod.product_id = cls.product_id AND prod.del_flg = 0 AND prod.status = 1";
132   
133    if($product_id != "all"){
134        $sql .= " AND prod.product_id = ?";
135        $arrval = array($product_id);
136    }
137    $sql .= " ORDER BY prod.product_id, cls.classcategory_id1, cls.classcategory_id2";
138    $arrProduct = $objQuery->getall($sql, $arrval);
139    return $arrProduct;
140}
141
142/**************************************************************************************************************
143 * 関数名:lfGetProductsAllclass
144 * 説明 :商品情報を取得する(vw_products_allclass使用)
145 * 引数1:$objQuery        DB操作クラス
146 * 戻り値:$arrProduct  取得結果を配列で返す
147 **************************************************************************************************************/
148function lfGetProductsAllclass($objQuery){
149    $sql = "";
150    $sql .= "SELECT 
151                product_id
152                ,name as product_name
153                ,category_id
154                ,point_rate
155                ,comment3
156                ,main_list_comment
157                ,main_image
158                ,main_list_image
159                ,product_code_min
160                ,product_code_max
161                ,price01_min
162                ,price01_max
163                ,price02_min
164                ,price02_max
165                ,(SELECT category_name FROM dtb_category AS cat WHERE cat.category_id = allcls.category_id) AS category_name
166                ,(SELECT main_large_image FROM dtb_products AS prod WHERE prod.product_id = allcls.product_id) AS main_large_image
167            FROM  vw_products_allclass as allcls
168            WHERE allcls.del_flg = 0 AND allcls.status = 1";
169    $sql .= " ORDER BY allcls.product_id";
170    $arrProduct = $objQuery->getall($sql);
171    return $arrProduct;
172}
173
174
175?>
Note: See TracBrowser for help on using the repository browser.