Changeset 19607
- Timestamp:
- 2010/11/07 05:41:12 (13 years ago)
- Location:
- branches/camp/camp-2_5-D/data
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/camp/camp-2_5-D/data/Smarty/templates/admin/system/editdb.tpl
r19117 r19607 24 24 25 25 <h2>インデックス管理</h2> 26 27 <form name="index_form" method="post" action="?"> 28 <input type="hidden" name="mode" value="confirm" /> 29 <table class="list"> 30 31 <tr> 32 <th>テーブル名</th> 33 <th>カラム名</th> 34 <th>インデックス</th> 35 </tr> 36 37 38 <!--{section name=cnt loop=$arrForm}--> 39 40 <tr> 41 <td><!--{$arrForm[cnt].table_name}--></td> 42 <td><!--{$arrForm[cnt].column_name}--></td> 43 <td><input type="checkbox" name="indexflag_new[]" value="<!--{$smarty.section.cnt.index}-->" <!--{if $arrForm[cnt].indexflag == "1"}-->checked<!--{/if}--> /></td> 44 </tr> 45 <input type="hidden" name="table_name[]" value="<!--{$arrForm[cnt].table_name}-->" /> 46 <input type="hidden" name="column_name[]" value="<!--{$arrForm[cnt].column_name}-->" /> 47 <input type="hidden" name="indexflag[]" value="<!--{$arrForm[cnt].indexflag}-->" /> 48 49 <!--{/section}--> 50 </table> 51 52 <input type="submit" value="変更する"> 53 </form> -
branches/camp/camp-2_5-D/data/class/pages/admin/system/LC_Page_Admin_System_Editdb.php
r19392 r19607 59 59 $objForm = new SC_FormParam(); 60 60 $objForm->addParam('mode', 'mode', INT_LEN, '', array('ALPHA_CHECK', 'MAX_LENGTH_CHECK')); 61 $objForm->setParam($_GET); 61 $objForm->addParam('table_name', 'テーブル名'); 62 $objForm->addParam('column_name', 'カラム名'); 63 $objForm->addParam('indexflag', 'インデックス'); 64 $objForm->addParam('indexflag_new', 'インデックス(変更後)'); 65 66 $objForm->setParam($_POST); 62 67 $this->objForm = $objForm; 63 68 } … … 72 77 SC_Utils_Ex::sfIsSuccess(new SC_Session); 73 78 $objView = new SC_AdminView(); 79 $objSiteInfo = new SC_SiteInfo(); 80 $objQuery = new SC_Query(); 81 $objDb = new SC_Helper_DB_Ex(); 82 $objProduct = new SC_Product(); 74 83 84 //インデックスの値を取得 85 $this->arrForm = $this->lfGetIndexList(); 86 87 //フォームの値を取得 75 88 $this->initForm(); 89 76 90 switch($this->objForm->getValue('mode')) { 91 //確認画面へ 92 case 'confirm' : 93 //POSTの値と配列の値を比較 94 // TODO: $_POSTを使わないように修正する。 95 $arrIndexFlag = $_POST['indexflag']; 96 $arrIndexFlagNewIndex = $_POST['indexflag_new']; 77 97 98 $arrIndexFlagNew = array(); 99 for($i = 0; $i < count($arrIndexFlag); $i++) { 100 if(array_search($i, $arrIndexFlagNewIndex) !== false) { 101 $arrIndexFlagNew[] = true; 102 } else { 103 $arrIndexFlagNew[] = false; 104 } 105 } 106 107 $objQuery = new SC_Query(); 108 foreach($arrIndexFlag as $key => $val){ 109 if($val != $arrIndexFlagNew[$key]) { 110 //値が異なっていた場合、インデックスのアップデートをかける 111 $index_name = $_POST["table_name"][$key] . "_" . $_POST["column_name"][$key] . "_key"; 112 if($arrIndexFlagNew[$key] == false) { 113 $objQuery->dropIndex($_POST["table_name"][$key], $index_name); 114 } else { 115 $objQuery->createIndex($_POST["table_name"][$key], $index_name, array('fields' => array($_POST["column_name"][$key] => array()))); 116 } 117 118 // フォームに引継ぐ 119 $this->arrForm[$key]["indexflag"] = true; 120 } 121 } 122 123 $this->tpl_onload = "window.alert('インデックスの変更が完了しました。');"; 78 124 default: 79 125 break; 80 126 } 81 82 // インデックス一覧を取得する83 $arrIndexList = $this->lfGetIndexList();84 127 85 128 $objView->assignobj($this); … … 95 138 parent::destroy(); 96 139 } 97 140 98 141 /** 99 142 * インデックス設定を行う一覧を返す関数 … … 106 149 $objQuery = new SC_Query(); 107 150 $objQuery->setOrder("table_name, column_name"); 108 $arrIndexList = $objQuery->select("table_name , column_name, recommend_flg, recommend_comment", "dtb_index_list");151 $arrIndexList = $objQuery->select("table_name , column_name , recommend_flg, recommend_comment", "dtb_index_list"); 109 152 110 153 $table = ""; … … 126 169 return $arrIndexList; 127 170 } 128 171 129 172 }
Note: See TracChangeset
for help on using the changeset viewer.