Changeset 17176 for branches/sol


Ignore:
Timestamp:
2008/03/23 01:34:26 (15 years ago)
Author:
kishida
Message:

商品詳細、商品コードをキャッシュするようにする

Location:
branches/sol/dev02/data
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/sol/dev02/data/class/pages/products/LC_Page_Products_Detail.php

    r16780 r17176  
    6262    function init() { 
    6363        parent::init(); 
    64         $masterData = new SC_DB_MasterData_Ex(); 
    65         $this->arrSTATUS = $masterData->getMasterData("mtb_status"); 
    66         $this->arrSTATUS_IMAGE = $masterData->getMasterData("mtb_status_image"); 
    67         $this->arrDELIVERYDATE = $masterData->getMasterData("mtb_delivery_date"); 
    68         $this->arrRECOMMEND = $masterData->getMasterData("mtb_recommend"); 
     64        $this->masterData = new SC_DB_MasterData_Ex(); 
     65        $this->arrSTATUS = $this->masterData->getMasterData("mtb_status"); 
     66        $this->arrSTATUS_IMAGE = $this->masterData->getMasterData("mtb_status_image"); 
     67        $this->arrDELIVERYDATE = $this->masterData->getMasterData("mtb_delivery_date"); 
     68        $this->arrRECOMMEND = $this->masterData->getMasterData("mtb_recommend"); 
    6969    } 
    7070 
     
    187187            break; 
    188188        } 
    189  
    190         $objQuery = new SC_Query(); 
    191         // DBから商品情報を取得する。 
    192         $arrRet = $objQuery->select("*", "vw_products_allclass_detail AS alldtl", "product_id = ?", array($tmp_id)); 
    193         $this->arrProduct = $arrRet[0]; 
    194  
    195         // 商品コードの取得 
    196         $code_sql = "SELECT product_code FROM dtb_products_class AS prdcls WHERE prdcls.product_id = ? GROUP BY product_code ORDER BY product_code"; 
    197         $arrProductCode = $objQuery->getall($code_sql, array($tmp_id)); 
     189         
     190        // キャッシュがあればキャッシュから商品詳細情報を取得する 
     191        $tmp_arrProduct = $this->masterData->getMasterDataFlg("product_detail_".$tmp_id); 
     192        if($tmp_arrProduct === false){ 
     193            // DBから商品情報を取得する。 
     194            $arrRet = $objQuery->select("*", "vw_products_allclass_detail AS alldtl", "product_id = ?", array($tmp_id)); 
     195            // 商品コードをキャッシュする 
     196            $this->masterData->createCache("product_detail_".$tmp_id, $arrRet[0]); 
     197            $this->arrProduct = $arrRet[0];  
     198        }else{ 
     199            $this->arrProduct = $tmp_arrProduct;     
     200        } 
     201         
     202         
     203        // キャッシュがあればキャッシュから商品コードを取得する 
     204        $tmp_productcode = $this->masterData->getMasterDataFlg("product_code_".$tmp_id); 
     205        if($tmp_productcode === false){ 
     206            // 商品コードの取得 
     207            $code_sql = "SELECT product_code FROM dtb_products_class AS prdcls WHERE prdcls.product_id = ? GROUP BY product_code ORDER BY product_code"; 
     208            $arrProductCode = $objQuery->getall($code_sql, array($tmp_id)); 
     209            // 商品コードをキャッシュする 
     210            $this->masterData->createCache("product_code_".$tmp_id, $arrProductCode[0]); 
     211        }else{ 
     212            $arrProductCode[0] = $tmp_productcode; 
     213        } 
     214         
    198215        $arrProductCode = SC_Utils_Ex::sfswaparray($arrProductCode); 
    199216        $this->arrProductCode = $arrProductCode["product_code"]; 
  • branches/sol/dev02/data/class_extends/db_extends/SC_DB_MasterData_Ex.php

    r16741 r17176  
    3535 */ 
    3636class SC_DB_MasterData_Ex extends SC_DB_MasterData { 
     37     
     38    function getMasterDataFlg($name){ 
     39        // 可変変数を定義 
     40        $valiable = "_" . $name . "_master"; 
     41         
     42        // キャッシュを読み込み 
     43        @include_once(MASTER_DATA_DIR . $name . ".php"); 
     44         
     45        // キャッシュがあれば, キャッシュの値を返す. 
     46        if (!empty($$valiable)) { 
     47            return $$valiable; 
     48        }else{ 
     49            return false; 
     50        } 
     51    } 
    3752} 
    3853?> 
Note: See TracChangeset for help on using the changeset viewer.