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

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

File:
1 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"]; 
Note: See TracChangeset for help on using the changeset viewer.