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

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

Location:
branches/version-2_12-dev/data/class
Files:
4 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     * 
  • branches/version-2_12-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis.php

    r22485 r22487  
    100100            SC_Helper_DB_Ex::registerBasisData($arrData); 
    101101 
     102            // キャッシュファイル更新 
     103            $objDb->sfCreateBasisDataCache(); 
    102104            $this->tpl_onload .= "window.alert('SHOPマスターの登録が完了しました。');"; 
    103105        } 
  • branches/version-2_12-dev/data/class/pages/error/LC_Page_Error.php

    r22206 r22487  
    7070        $objHelperPlugin = SC_Helper_Plugin_Ex::getSingletonInstance($this->plugin_activate_flg); 
    7171        $objHelperPlugin->arrRegistedPluginActions = array(); 
     72 
     73        // キャッシュから店舗情報取得(DBへの接続は行わない) 
     74        $this->arrSiteInfo = SC_Helper_DB_Ex::sfGetBasisDataCache(false); 
    7275    } 
    7376 
  • branches/version-2_12-dev/data/class/pages/error/LC_Page_Error_DispError.php

    r22206 r22487  
    5555        $objHelperPlugin = SC_Helper_Plugin_Ex::getSingletonInstance($this->plugin_activate_flg); 
    5656        $objHelperPlugin->arrRegistedPluginActions = array(); 
     57 
     58        // キャッシュから店舗情報取得(DBへの接続は行わない) 
     59        $this->arrSiteInfo = SC_Helper_DB_Ex::sfGetBasisDataCache(false); 
    5760    } 
    5861 
Note: See TracChangeset for help on using the changeset viewer.