Changeset 18571 for branches/comu-ver2
- Timestamp:
- 2010/02/18 11:06:04 (13 years ago)
- Location:
- branches/comu-ver2/data/class
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/comu-ver2/data/class/db/SC_DB_MasterData.php
r18507 r18571 59 59 * 60 60 * 以下の順序でマスタデータを取得する. 61 * 1. MASTER_DATA_DIR のマスタデータキャッシュを include() で読み込む 62 * 2. 1 で読み込んだ値をチェックし, 値が変数定義されていれば値を返す. 63 * されていなければ, 次の処理を行う. 64 * 3. 値が未定義の場合は, DBからマスタデータを取得する. 65 * 4. 取得した後, マスタデータのキャッシュを生成し, 値を返す. 61 * 1. MASTER_DATA_DIR にマスタデータキャッシュが存在しない場合、 62 * DBからマスタデータを取得して、マスタデータキャッシュを生成する。 63 * 2. マスタデータキャッシュを読み込み、変数に格納し返す。 66 64 * 67 65 * 返り値は, key => value 形式の配列である. … … 76 74 $columns = $this->getDefaultColumnName($columns); 77 75 78 // 可変変数を定義 79 $valiable = "_" . $name . "_master"; 76 $filepath = MASTER_DATA_DIR . $name . '.serial'; 77 78 if (!file_exists($filepath)) { 79 // キャッシュ生成 80 $this->createCache($name, $columns); 81 } 82 80 83 // キャッシュを読み込み 81 @include(MASTER_DATA_DIR . $name . ".php"); 82 83 // キャッシュがあれば, キャッシュの値を返す. 84 if (!empty($$valiable)) { 85 return $$valiable; 86 } 87 // マスタデータを取得 88 $masterData = $this->getDbMasterData($name, $columns); 89 // キャッシュ生成 90 $this->createCache($name, $masterData); 84 $masterData = unserialize(file_get_contents($filepath)); 85 91 86 return $masterData; 92 87 } … … 253 248 * @return bool キャッシュの生成に成功した場合 true 254 249 */ 255 function createCache($name, $ masterData, $isDefine = false,250 function createCache($name, $columns = array(), $isDefine = false, 256 251 $commentColumn = array()) { 257 252 253 // マスタデータを取得 254 $masterData = $this->getDbMasterData($name, $columns); 255 258 256 // マスタデータを文字列にする 259 $data = "<?php\n";260 257 // 定数を生成する場合 261 258 if ($isDefine) { 262 259 $path = MASTER_DATA_DIR . $name . '.php'; 260 261 $data = "<?php\n"; 263 262 // 定数コメントを生成する場合 264 263 if (!empty($commentColumn)) { … … 268 267 $data .= $this->getMasterDataAsDefine($masterData); 269 268 } 269 $data .= "?>\n"; 270 270 271 271 // 配列を生成する場合 272 272 } else { 273 $ data .= $this->getMasterDataAsString($name, $masterData);274 }275 $data .= "?>\n";273 $path = MASTER_DATA_DIR . $name . '.serial'; 274 $data = serialize($masterData); 275 } 276 276 277 277 // ファイルを書き出しモードで開く 278 $path = MASTER_DATA_DIR . $name . ".php";279 278 $handle = fopen($path, "w"); 280 279 if (!$handle) { … … 305 304 306 305 $this->objQuery = new SC_Query(); 307 $this->objQuery->setorder($columns[2]); 306 if (isset($columns[2]) && strlen($columns[2]) >= 1) { 307 $this->objQuery->setorder($columns[2]); 308 } 308 309 $results = $this->objQuery->select($columns[0] . ", " . $columns[1], $name); 309 310 … … 337 338 return $this->columns; 338 339 } 339 }340 341 /**342 * マスタデータの配列を配列定義の文字列として出力する.343 *344 * @access private345 * @param string $name マスタデータ名346 * @param array $masterData マスタデータの配列347 * @return string 配列定義の文字列348 */349 function getMasterDataAsString($name, $masterData) {350 $data = "\$_" . $name . "_master = array(\n";351 $i = count($masterData);352 foreach ($masterData as $key => $val) {353 $data .= "'" . $key . "' => '" . $val . "'";354 if ($i > 1) {355 $data .= ",\n";356 }357 $i--;358 }359 $data .= ");\n";360 return $data;361 340 } 362 341 -
branches/comu-ver2/data/class/pages/admin/design/LC_Page_Admin_Design_Template.php
r18234 r18571 228 228 } 229 229 230 /** 231 * 使用するテンプレートをDBへ登録する 232 */ 233 function lfRegisterTemplate($template_code) { 234 $objQuery = new SC_Query(); 235 $sqlval['name'] = "\"" . $template_code . "\""; 236 $objQuery->update("mtb_constants", $sqlval, "id = ?", array('TEMPLATE_NAME')); 237 // キャッシュを生成 238 $masterData = new SC_DB_MasterData_Ex(); 239 // 更新したデータを取得 240 $mtb_constants = $masterData->getDBMasterData("mtb_constants"); 241 $masterData->clearCache("mtb_constants"); 242 $masterData->createCache("mtb_constants", $mtb_constants, true, 243 array("id", "remarks", "rank")); 244 } 230 /** 231 * 使用するテンプレートをDBへ登録する 232 */ 233 function lfRegisterTemplate($template_code) { 234 $masterData = new SC_DB_MasterData_Ex(); 235 236 $data = array('TEMPLATE_NAME' => var_export($template_code, TRUE)); 237 238 // DBのデータを更新 239 $masterData->updateMasterData('mtb_constants', array(), $data); 240 241 // キャッシュを生成 242 $masterData->createCache('mtb_constants', array(), true, array('id', 'remarks')); 243 } 245 244 246 245 /** -
branches/comu-ver2/data/class/pages/admin/system/LC_Page_Admin_System_Parameter.php
r17571 r18571 135 135 136 136 // DBのデータを更新 137 $masterData->updateMasterData("mtb_constants", array(), $data); 138 139 // 更新したデータを取得 140 $mtb_constants = $masterData->getDBMasterData("mtb_constants"); 137 $masterData->updateMasterData('mtb_constants', array(), $data); 141 138 142 139 // キャッシュを生成 143 $masterData->clearCache("mtb_constants"); 144 $masterData->createCache("mtb_constants", $mtb_constants, true, 145 array("id", "remarks", "rank")); 140 $masterData->createCache('mtb_constants', array(), true, array('id', 'remarks')); 146 141 } 147 142
Note: See TracChangeset
for help on using the changeset viewer.