Changeset 20330
- Timestamp:
- 2011/02/23 00:11:00 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Masterdata.php
r20116 r20330 77 77 case "edit": 78 78 // POST 文字列の妥当性チェック 79 $this-> checkMasterDataName();80 $this->errorMessage = $this->checkUniqueID( );79 $this->masterDataName = $this->checkMasterDataName($_POST, $this->arrMasterDataName); 80 $this->errorMessage = $this->checkUniqueID($_POST); 81 81 82 82 if (empty($this->errorMessage)) { 83 83 // 取得したデータからマスタデータを生成 84 $arrData = array(); 85 foreach ($_POST['id'] as $key => $val) { 86 87 // ID が空のデータは生成しない 88 if ($val != "") { 89 $arrData[$val] = $_POST['name'][$key]; 90 } 91 } 92 93 // マスタデータを更新 94 $masterData->objQuery = new SC_Query(); 95 $masterData->objQuery->begin(); 96 $masterData->deleteMasterData($this->masterDataName, false); 97 // TODO カラム名はメタデータから取得した方が良い 98 $masterData->registMasterData($this->masterDataName, 99 array("id", "name", "rank"), 100 $arrData, false); 101 $masterData->objQuery->commit(); 84 $this->registMasterData($_POST, $masterData, $this->masterDataName); 102 85 $this->tpl_onload = "window.alert('マスタデータの設定が完了しました。');"; 103 86 } … … 105 88 case "show": 106 89 // POST 文字列の妥当性チェック 107 $this-> checkMasterDataName();90 $this->masterDataName = $this->checkMasterDataName($_POST, $this->arrMasterDataName); 108 91 109 92 // DB からマスタデータを取得 … … 129 112 * 130 113 * @access private 131 * @return void 132 */ 133 function checkMasterDataName() { 134 135 if (in_array($_POST['master_data_name'], $this->arrMasterDataName)) { 136 $this->masterDataName = $_POST['master_data_name']; 137 return true; 114 * @param array $_POST値 115 * @param array $arrMasterDataName マスターデータテーブル名のリスト 116 * @return string $master_data_name 選択しているマスターデータのテーブル名 117 */ 118 function checkMasterDataName(&$arrParams, &$arrMasterDataName) { 119 120 if (in_array($arrParams['master_data_name'], $arrMasterDataName)) { 121 $master_data_name = $arrParams['master_data_name']; 122 return $master_data_name; 138 123 } else { 139 124 SC_Utils_Ex::sfDispeError(""); 140 125 } 126 141 127 } 142 128 … … 172 158 * @return void|string エラーが発生した場合はエラーメッセージを返す. 173 159 */ 174 function checkUniqueID( ) {175 176 $arrId = $ _POST['id'];160 function checkUniqueID(&$arrParams) { 161 162 $arrId = $arrParams['id']; 177 163 for ($i = 0; $i < count($arrId); $i++) { 178 164 … … 188 174 } 189 175 } 176 177 178 /** 179 * マスターデータの登録. 180 * 181 * @access private{ 182 * @param array $arrParams $_POST値 183 * @param object $masterData SC_DB_MasterData_Ex() 184 * @param string $master_data_name 登録対象のマスターデータのテーブル名 185 * @return void 186 */ 187 function registMasterData($arrParams, &$masterData, $master_data_name) { 188 189 $arrTmp = array(); 190 foreach ($arrParams['id'] as $key => $val) { 191 192 // ID が空のデータは生成しない 193 if ($val != "") { 194 $arrTmp[$val] = $arrParams['name'][$key]; 195 } 196 } 197 198 // マスタデータを更新 199 $masterData->objQuery =& SC_Query::getSingletonInstance(); 200 $masterData->objQuery->begin(); 201 $masterData->deleteMasterData($master_data_name, false); 202 // TODO カラム名はメタデータから取得した方が良い 203 $masterData->registMasterData($master_data_name, 204 array("id", "name", "rank"), 205 $arrTmp, false); 206 $masterData->objQuery->commit(); 207 208 } 190 209 } 191 210 ?>
Note: See TracChangeset
for help on using the changeset viewer.
