Changeset 16248
- Timestamp:
- 2007/10/03 16:46:53 (16 years ago)
- Location:
- branches/feature-module-update/data
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/feature-module-update/data/Smarty/templates/default/admin/basis/masterdata.tpl
r16233 r16248 8 8 <!--★★メインコンテンツ★★--> 9 9 <table width="878" border="0" cellspacing="0" cellpadding="0" summary=" "> 10 <form name="form1" id="form1" method="post" action="<!--{$smarty.server.PHP_SELF}-->">11 <input type="hidden" name="mode" value="edit">12 10 <tr valign="top"> 13 11 <td background="<!--{$TPL_DIR}-->img/contents/navi_bg.gif" height="402"> … … 46 44 </tr> 47 45 </table> 46 <form name="form1" id="form1" method="post" action="<!--{$smarty.server.PHP_SELF|escape}-->"> 47 <input type="hidden" name="mode" value="show"> 48 48 49 <table width="678" border="0" cellspacing="1" cellpadding="8" summary=" "> 49 <table width="678" border="0" cellspacing="1" cellpadding="8" summary=" "> 50 <tr> 51 <td bgcolor="#f2f1ec" width="180" class="fs12n"> 52 <select name="master_data_name" id="master_data_name"> 53 <!--{html_options output=$arrMasterDataName values=$arrMasterDataName selected=$masterDataName}--> 54 </select> 55 <input type="submit" value="選択"> 56 </td> 57 </tr> 58 </table> 59 </form> 60 <!--{if count($arrMasterData) > 0}--> 61 <form name="form2" id="form2" method="post" action="<!--{$smarty.server.PHP_SELF|escape}-->"> 62 <input type="hidden" name="mode" value="edit"> 63 <input type="hidden" name="master_data_name" value="<!--{$masterDataName}-->"> 64 <table width="678" border="0" cellspacing="1" cellpadding="8" summary=" "> 65 <tr class="fs12n"> 66 <td bgcolor="#f2f1ec" align="center" colspan="2"><strong>マスタデータ編集</strong></td> 67 </tr> 68 <tr class="fs12n"> 69 <td bgcolor="#ffffff" align="left" colspan="2"> 70 <ul class="red"> 71 <li>マスタデータの値を設定できます。</li> 72 <li>重複したIDを登録することはできません。</li> 73 <li>空のIDを登録すると、値は削除されます。</li> 74 <li>設定値によってはサイトが機能しなくなる場合もありますので、十分ご注意下さい。</li> 75 </ul> 76 </td> 77 </tr> 78 <!--{if $errorMessage != ""}--> 79 <tr class="fs12n"> 80 <td bgcolor="#ffffff" align="left" colspan="2"> 81 <span class="red"><!--{$errorMessage}--></span> 82 </td> 83 </tr> 84 <!--{/if}--> 50 85 51 <tr> 52 <td bgcolor="#f2f1ec" width="180" class="fs12n"> 53 <select name="master_data_name"> 54 <option value="">選択してください</option> 55 <!--{html_options output=$arrMasterDataName values=$arrMasterDataName}--> 56 </select> 57 <input type="submit" value="選択"> 58 </td> 59 </tr> 60 </table> 61 62 <table width="678" border="0" cellspacing="1" cellpadding="8" summary=" "> 63 <tr class="fs12n"> 64 <td bgcolor="#f2f1ec" align="center"><strong>マスタデータ編集</strong></td> 65 </tr> 66 <!--{section name=cnt start=1 loop=$arrMasterData}--> 67 <tr class="fs12n"> 68 <td bgcolor="#ffffff" align="left"> 69 値:<input type="text" name="bloc_name" value="<!--{$arrMasterData[cnt]}-->" maxlength="50" style="" size="60" class="box60" /> 70 </td> 71 </tr> 72 <!--{/section}--> 73 </table> 74 75 76 77 78 86 <!--{foreach from=$arrMasterData item=val key=key}--> 87 <tr class="fs12n"> 88 <td bgcolor="#ffffff" align="left"> 89 ID:<input type="text" name="id[]" value="<!--{$key|escape}-->" size="6"> 90 </td> 91 <td bgcolor="#ffffff" align="left"> 92 値:<input type="text" name="name[]" value="<!--{$val|escape}-->" style="" size="60" 93 class="box60" /> 94 </td> 95 </tr> 96 <!--{/foreach}--> 97 <tr class="fs12n"> 98 <td bgcolor="#f2f1ec" align="center" colspan="2">追加のデータ</td> 99 </tr> 100 <tr class="fs12n"> 101 <td bgcolor="#ffffff" align="left"> 102 ID:<input type="text" name="id[]" size="6"> 103 </td> 104 <td bgcolor="#ffffff" align="left"> 105 値:<input type="text" name="name[]" style="" size="60" 106 class="box60" /> 107 </td> 108 </tr> 109 </table> 110 </form> 79 111 <table width="678" border="0" cellspacing="0" cellpadding="0" summary=" "> 80 112 <tr> … … 88 120 <table border="0" cellspacing="0" cellpadding="0" summary=" "> 89 121 <tr> 90 <td><input type="image" onMouseover="chgImgImageSubmit('<!--{$TPL_DIR}-->img/contents/btn_regist_on.jpg',this)" onMouseout="chgImgImageSubmit('<!--{$TPL_DIR}-->img/contents/btn_regist.jpg',this)" src="<!--{$TPL_DIR}-->img/contents/btn_regist.jpg" width="123" height="24" alt="この内容で登録する" border="0" name="subm" ></td> 122 <td> 123 <input onClick="return document.form2.submit()" type="image" onMouseover="chgImgImageSubmit('<!--{$TPL_DIR}-->img/contents/btn_regist_on.jpg',this)" onMouseout="chgImgImageSubmit('<!--{$TPL_DIR}-->img/contents/btn_regist.jpg',this)" src="<!--{$TPL_DIR}-->img/contents/btn_regist.jpg" width="123" height="24" alt="この内容で登録する" border="0" name="subm" > 124 </td> 91 125 </tr> 92 126 </table> 127 93 128 </td> 94 129 <td bgcolor="#cccccc"><img src="<!--{$TPL_DIR}-->img/common/_.gif" width="1" height="10" alt=""></td> … … 98 133 </tr> 99 134 </table> 135 <!--{/if}--> 100 136 </td> 101 137 <td background="<!--{$TPL_DIR}-->img/contents/main_right.jpg"><img src="<!--{$TPL_DIR}-->img/common/_.gif" width="14" height="1" alt=""></td> -
branches/feature-module-update/data/class/db/SC_DB_MasterData.php
r15720 r16248 101 101 $i = 0; 102 102 foreach ($masterData as $key => $val) { 103 $sqlVal = array($columns[0] => $key,104 $columns[1] => $val,103 $sqlVal = array($columns[0] => (string) $key, 104 $columns[1] => (string) $val, 105 105 $columns[2] => (string) $i); 106 106 $this->objQuery->insert($name, $sqlVal); -
branches/feature-module-update/data/class/pages/admin/basis/LC_Page_Admin_Basis_Masterdata.php
r16233 r16248 30 30 $this->tpl_mainpage = 'basis/masterdata.tpl'; 31 31 $this->tpl_subnavi = 'basis/subnavi.tpl'; 32 $this->tpl_subno = ' index';32 $this->tpl_subno = 'masterdata'; 33 33 $this->tpl_mainno = 'basis'; 34 34 } … … 41 41 function process() { 42 42 $objView = new SC_AdminView(); 43 $dbFactory = SC_DB_DBFactory::getInstance(); 44 $this->arrMasterDataName = $dbFactory->findTableNames("mtb_"); 43 $this->arrMasterDataName = $this->getMasterDataNames(array("mtb_pref", 44 "mtb_zip", 45 "mtb_constants")); 45 46 $masterData = new SC_DB_MasterData_Ex(); 46 47 47 48 48 if (!isset($_POST["mode"])) $_POST["mode"] = ""; 49 49 50 50 switch ($_POST["mode"]) { 51 case "edit": 52 53 $this->arrMasterData = $masterData->getDbMasterData($_POST["master_data_name"]); 54 break; 55 default: 51 case "edit": 52 // POST 文字列の妥当性チェック 53 $this->checkMasterDataName(); 54 $this->errorMessage = $this->checkUniqueId(); 55 56 if (empty($this->errorMessage)) { 57 // 取得したデータからマスタデータを生成 58 $arrData = array(); 59 foreach ($_POST['id'] as $key => $val) { 60 61 // ID が空のデータは生成しない 62 if ($val != "") { 63 $arrData[$val] = $_POST['name'][$key]; 64 } 65 } 66 67 // マスタデータを更新 68 $masterData->objQuery = new SC_Query(); 69 $masterData->objQuery->begin(); 70 $masterData->deleteMasterData($this->masterDataName, false); 71 // TODO カラム名はメタデータから取得した方が良い 72 $masterData->registMasterData($this->masterDataName, 73 array("id", "name", "rank"), 74 $arrData, false); 75 $masterData->objQuery->commit(); 76 } 77 78 case "show": 79 // POST 文字列の妥当性チェック 80 $this->checkMasterDataName(); 81 82 // DB からマスタデータを取得 83 $this->arrMasterData = 84 $masterData->getDbMasterData($this->masterDataName); 85 break; 86 87 default: 56 88 } 57 89 58 90 $objView->assignobj($this); 59 91 $objView->display(MAIN_FRAME); … … 68 100 parent::destroy(); 69 101 } 102 103 /** 104 * マスタデータ名チェックを行う 105 * 106 * @access private 107 * @return void 108 */ 109 function checkMasterDataName() { 110 111 if (in_array($_POST['master_data_name'], $this->arrMasterDataName)) { 112 $this->masterDataName = $_POST['master_data_name']; 113 return true; 114 } else { 115 SC_Utils_Ex::sfDispeError(""); 116 } 117 } 118 119 /** 120 * マスタデータ名を配列で取得する. 121 * 122 * @access private 123 * @param array $ignores 取得しないマスタデータ名の配列 124 * @return array マスタデータ名の配列 125 */ 126 function getMasterDataNames($ignores = array()) { 127 $dbFactory = SC_DB_DBFactory::getInstance(); 128 $arrMasterDataName = $dbFactory->findTableNames("mtb_"); 129 130 $i = 0; 131 foreach ($arrMasterDataName as $val) { 132 foreach ($ignores as $ignore) { 133 if ($val == $ignore) { 134 unset($arrMasterDataName[$i]); 135 } 136 } 137 $i++; 138 } 139 return $arrMasterDataName; 140 } 141 142 /** 143 * ID の値がユニークかチェックする. 144 * 145 * 重複した値が存在する場合はエラーメッセージを表示する. 146 * 147 * @access private 148 * @return void|string エラーが発生した場合はエラーメッセージを返す. 149 */ 150 function checkUniqueID() { 151 152 $arrId = $_POST['id']; 153 for ($i = 0; $i < count($arrId); $i++) { 154 155 $id = $arrId[$i]; 156 // 空の値は無視 157 if ($arrId[$i] != "") { 158 for ($j = $i + 1; $j < count($arrId); $j++) { 159 if ($id == $arrId[$j]) { 160 return $id . " が重複しているため登録できません."; 161 } 162 } 163 } 164 } 165 } 70 166 } 71 167 ?>
Note: See TracChangeset
for help on using the changeset viewer.