Ignore:
Timestamp:
2013/01/30 22:17:02 (8 years ago)
Author:
undertree
Message:

#1358(PC・スマートフォンのエラー画面でフッタにサイト名が表示されない。)
「基本設定>SHOPマスター」更新時にdtb_baseinfoのキャッシュファイルをdata/cacheに生成。
エラーページではarrSiteInfoにキャッシュファイルの値を入れる(ファイルが無い場合の「DB参照→生成」は行わない)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_12-dev/data/class/helper/SC_Helper_DB.php

    r22477 r22487  
    153153 
    154154    /** 
     155     * 基本情報のキャッシュデータを取得する 
     156     * 
     157     * @param boolean $generate キャッシュファイルが無い時、DBのデータを基にキャッシュを生成するか 
     158     * @return array 店舗基本情報の配列 
     159     */ 
     160    function sfGetBasisDataCache($generate = false){ 
     161        // テーブル名 
     162        $name = 'dtb_baseinfo'; 
     163        // キャッシュファイルパス 
     164        $filepath = MASTER_DATA_REALDIR . $name . '.serial'; 
     165        // ファイル存在確認 
     166        if (!file_exists($filepath) && $generate) { 
     167            // 存在していなければキャッシュ生成 
     168            $this->sfCreateBasisDataCache(); 
     169        } 
     170        // 戻り値初期化 
     171        $cacheData = array(); 
     172        // キャッシュファイルが存在すれば読み込む 
     173        if (file_exists($filepath)) { 
     174            // キャッシュデータファイルを読み込みアンシリアライズした配列を取得 
     175            $cacheData = unserialize(file_get_contents($filepath)); 
     176        } 
     177        // return 
     178        return $cacheData; 
     179    } 
     180 
     181    /** 
     182     * 基本情報のキャッシュデータファイルを生成する 
     183     * データはsfGetBasisDataより取得。 
     184     *  
     185     * このメソッドが直接呼ばれるのは、 
     186     *「基本情報管理>SHOPマスター」の更新完了後。 
     187     * sfGetBasisDataCacheでは、 
     188     * キャッシュデータファイルが無い場合に呼ばれます。 
     189     * 
     190     * @return bool キャッシュデータファイル生成結果 
     191     */ 
     192    function sfCreateBasisDataCache() { 
     193        // テーブル名 
     194        $name = 'dtb_baseinfo'; 
     195        // キャッシュファイルパス 
     196        $filepath = MASTER_DATA_REALDIR . $name . '.serial'; 
     197        // データ取得 
     198        $arrData = $this->sfGetBasisData(true); 
     199        // シリアライズ 
     200        $data = serialize($arrData); 
     201        // ファイルを書き出しモードで開く 
     202        $handle = fopen($filepath, 'w'); 
     203        if (!$handle) { 
     204            // ファイル生成失敗 
     205            return false; 
     206        } 
     207        // ファイルの内容を書き出す. 
     208        $res = fwrite($handle, $data); 
     209        // ファイルを閉じる 
     210        fclose($handle); 
     211        if ( $res === false) { 
     212            // ファイル生成失敗 
     213            return false; 
     214        } 
     215        // ファイル生成成功 
     216        return true; 
     217    } 
     218 
     219    /** 
    155220     * 基本情報の登録数を取得する 
    156221     * 
Note: See TracChangeset for help on using the changeset viewer.