Changeset 20318 for branches/version-2_5-dev/data/class/pages/admin/contents/LC_Page_Admin_Contents_CSV.php
- Timestamp:
- 2011/02/22 10:47:25 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_5-dev/data/class/pages/admin/contents/LC_Page_Admin_Contents_CSV.php
r20116 r20318 48 48 $this->tpl_subnavi = 'contents/subnavi.tpl'; 49 49 $this->tpl_subno = 'csv'; 50 51 50 $this->tpl_mainno = "contents"; 52 51 $this->tpl_subtitle = 'CSV出力設定'; 52 53 $objCSV = new SC_Helper_CSV_Ex(); 54 $this->arrSubnavi = $objCSV->arrSubnavi; // 別名 55 $this->tpl_subno_csv = $objCSV->arrSubnavi[1]; //デフォルト 56 $this->arrSubnaviName = $objCSV->arrSubnaviName; // 表示名 53 57 } 54 58 … … 69 73 */ 70 74 function action() { 71 $objSess = new SC_Session();72 $objCSV = new SC_Helper_CSV_Ex();73 74 $this->arrSubnavi = $objCSV->arrSubnavi;75 $this->tpl_subno_csv = $objCSV->arrSubnavi[1];76 $this->arrSubnaviName = $objCSV->arrSubnaviName;77 78 75 // 認証可否の判定 79 $objSess = new SC_Session(); 80 SC_Utils_Ex::sfIsSuccess($objSess); 81 82 $get_tpl_subno_csv = isset($_GET['tpl_subno_csv']) 83 ? $_GET['tpl_subno_csv'] : ""; 84 85 // GETで値が送られている場合にはその値を元に画面表示を切り替える 86 if ($get_tpl_subno_csv != ""){ 87 // 送られてきた値が配列に登録されていなければTOPを表示 88 if (in_array($get_tpl_subno_csv,$this->arrSubnavi)){ 89 $subno_csv = $get_tpl_subno_csv; 90 }else{ 91 $subno_csv = $this->arrSubnavi[1]; 92 } 93 } else { 94 // GETで値がなければPOSTの値を使用する 95 if (isset($_POST['tpl_subno_csv']) 96 && $_POST['tpl_subno_csv'] != "") { 97 98 $subno_csv = $_POST['tpl_subno_csv']; 99 }else{ 100 $subno_csv = $this->arrSubnavi[1]; 101 } 102 } 103 104 // subnoの番号を取得 105 $subno_id = array_keys($this->arrSubnavi,$subno_csv); 106 $subno_id = $subno_id[0]; 107 108 // データの登録 76 SC_Utils_Ex::sfIsSuccess(new SC_Session()); 77 78 // 不正アクセスチェック 79 if ($_SERVER["REQUEST_METHOD"] == "POST") { 80 if (!SC_Helper_Session_Ex::isValidToken()) { 81 SC_Utils_Ex::sfDispError(INVALID_MOVE_ERRORR); 82 } 83 } 84 // トランザクションID 85 $this->transactionid = SC_Helper_Session_Ex::getToken(); 86 87 // パラメータ管理クラス 88 $objFormParam = new SC_FormParam(); 89 // パラメータ設定 90 $this->lfInitParam($objFormParam); 91 $objFormParam->setParam($_POST); 92 $objFormParam->setParam($_GET); 93 $objFormParam->convParam(); 94 95 // CSV_IDの読み込み 96 $this->tpl_subno_csv = $objFormParam->getValue('tpl_subno_csv'); 97 $this->tpl_csv_id = $this->lfGetCsvId($this->tpl_subno_csv); 98 109 99 switch ($this->getMode()) { 110 100 case 'confirm': 111 // エラーチェック112 $this->arrErr = $ this->lfCheckError($_POST['output_list']);113 114 if (count($this->arrErr) <= 0){115 // データの更新116 $this->lfUpdCsvOutput($subno_id, $_POST['output_list']);117 118 // 画面のリロード119 $this->objDisplay->reload(array("tpl_subno_csv" => $subno_csv));120 }101 // 入力パラメーターチェック 102 $this->arrErr = $objFormParam->checkError(); 103 if(SC_Utils_Ex::isBlank($this->arrErr)) { 104 // 更新 105 $this->tpl_is_update = $this->lfUpdCsvOutput($this->tpl_csv_id, $objFormParam->getValue('output_list')); 106 } 107 break; 108 case 'defaultset': 109 //初期値に戻す 110 $this->tpl_is_update = $this->lfSetDefaultCsvOutput($this->tpl_csv_id); 121 111 break; 122 112 default: 123 113 break; 124 114 } 125 126 // 出力項目の取得 127 $arrSelected = SC_Utils_Ex::sfSwapArray($objCSV->sfGetCsvOutput($subno_id, 'status = 1')); 128 129 if (!isset($arrSelected['no'])) $arrSelected['no'] = array(); 130 131 $this->arrSelected = $arrSelected['no']; 132 133 // 全項目の取得 134 $arrOptions = SC_Utils_Ex::sfSwapArray($objCSV->sfGetCsvOutput($subno_id)); 135 136 if (!isset($arrOptions['no'])) $arrOptions['no'] = array(); 137 if (!isset($arrOptions['disp_name'])) $arrOptions['disp_name'] = array(); 138 139 $arrOptions = SC_Utils_Ex::sfarrCombine($arrOptions['no'], $arrOptions['disp_name']); 140 141 $this->arrOptions = $arrOptions; 142 143 $this->SubnaviName = $this->arrSubnaviName[$subno_id]; 144 $this->tpl_subno_csv = $subno_csv; 115 $this->arrSelected = $this->lfGetSelected($this->tpl_csv_id); 116 $this->arrOptions = $this->lfGetOptions($this->tpl_csv_id); 117 $this->tpl_subtitle .= ' - ' . $this->arrSubnaviName[ $this->tpl_csv_id ]; 118 } 119 120 /** 121 * パラメーター情報の初期化 122 * 123 * @param array $objFormParam フォームパラメータークラス 124 * @return void 125 */ 126 function lfInitParam(&$objFormParam) { 127 $objFormParam->addParam('編集種別', 'tpl_subno_csv', STEXT_LEN, 'a', array("ALNUM_CHECK", "MAX_LENGTH_CHECK"), 'product'); 128 $objFormParam->addParam('出力設定リスト', 'output_list', INT_LEN, 'n', array("NUM_CHECK", "MAX_LENGTH_CHECK", "EXIST_CHECK")); 129 //デフォルト値で上書き 130 $objFormParam->setParam(array('tpl_subno_csv' => 'product')); 131 } 132 133 /** 134 * CSVカラム設定の読み込み 135 * 136 * @param integer $csv_id CSV ID 137 * @param integer $csv_status_flg 読み込む対象のフラグ CSV_COLUMN_STATUS_FLG_ENABLE or '' 138 * @return array SwapArrayしたカラム設定 139 */ 140 function lfGetCSVColumn($csv_id, $csv_status_flg = '', $order ='rank, no') { 141 $objCSV = new SC_Helper_CSV_Ex(); 142 if(SC_Utils_Ex::sfIsInt($csv_id)) { 143 if($csv_status_flg !="") { 144 $arrData = $objCSV->sfGetCsvOutput($csv_id, 'status = ?' , array($csv_status_flg), $order); 145 }else{ 146 $arrData = $objCSV->sfGetCsvOutput($csv_id, '', array(), $order); 147 } 148 $arrData = SC_Utils_Ex::sfSwapArray($arrData); 149 }else{ 150 $arrData = array(); 151 } 152 return $arrData; 153 } 154 155 /** 156 * 選択済みカラム列情報を取得 157 * 158 * @param integer $csv_id CSV ID 159 * @return array 選択済みカラム列情報 160 */ 161 function lfGetSelected($csv_id) { 162 $arrData = $this->lfGetCSVColumn($csv_id, CSV_COLUMN_STATUS_FLG_ENABLE); 163 if (!isset($arrData['no'])) { 164 $arrData['no'] = array(); 165 } 166 return $arrData['no']; 167 } 168 169 /** 170 * カラム列情報と表示名情報を取得 171 * 172 * @param integer $csv_id CSV ID 173 * @return array 選択済みカラム列情報 174 */ 175 function lfGetOptions($csv_id) { 176 $arrData = $this->lfGetCSVColumn($csv_id); 177 if (!isset($arrData['no'])) { 178 $arrData['no'] = array(); 179 $arrData['disp_name'] = array(); 180 } 181 $arrData = SC_Utils_Ex::sfArrCombine($arrData['no'], $arrData['disp_name']); 182 return $arrData; 145 183 } 146 184 … … 154 192 } 155 193 194 /** 195 * CSV名からCSV_IDを取得する。 196 * 197 * @param string $subno_csv CSV名 198 * @return integer CSV_ID 199 */ 200 function lfGetCsvId($subno_csv) { 201 $objCSV = new SC_Helper_CSV_Ex(); 202 $arrKey = array_keys($objCSV->arrSubnavi,$subno_csv); 203 $csv_id = $arrKey[0]; 204 if(!SC_Utils_Ex::sfIsInt($csv_id)) { 205 //初期値取りだし 206 $arrKey = array_keys($objCSV->arrSubnavi); 207 $csv_id = $arrKey[0]; 208 } 209 return $csv_id; 210 } 211 212 /** 213 * CSV出力項目設定を初期化する 214 * 215 * @param integer $csv_id CSV_ID 216 * @return boolean 成功:true 217 */ 218 function lfSetDefaultCsvOutput($csv_id) { 219 $arrData = $this->lfGetCSVColumn($csv_id, '', $order = 'no'); 220 if (!isset($arrData['no'])) { 221 $arrData['no'] = array(); 222 } 223 return $this->lfUpdCsvOutput($csv_id, $arrData['no']); 224 } 225 226 /** 227 * CSV出力項目設定を更新する処理 228 * 229 * @param integer $csv_id CSV_ID 230 * @param array $arrData 有効にするCSV列データ配列 231 * @return boolean 成功:true 232 */ 156 233 function lfUpdCsvOutput($csv_id, $arrData = array()){ 157 $objQuery = new SC_Query(); 158 234 $objQuery =& SC_Query::getSingletonInstance(); 159 235 // ひとまず、全部使用しないで更新する 160 $upd_sql = "UPDATE dtb_csv SET status = 2, rank = NULL, update_date = now() WHERE csv_id = ?"; 161 $objQuery->query($upd_sql, array($csv_id)); 162 236 $table = "dtb_csv"; 237 $where = "csv_id = ?"; 238 $arrWhereVal = array($csv_id); 239 $arrUpdVal = array( 'status' => '2', 'rank' => NULL, 'update_date' => 'now()' ); 240 241 $objQuery->begin(); 242 $objQuery->update($table, $arrUpdVal, $where, $arrWhereVal); 163 243 // 使用するものだけ、再更新する。 164 244 if (is_array($arrData)) { 245 $where .= " AND no = ?"; 246 $arrUpdVal = array('status' => '1'); 165 247 foreach($arrData as $key => $val){ 166 $upd_sql = "UPDATE dtb_csv SET status = 1, rank = ? WHERE csv_id = ? AND no = ? "; 167 $objQuery->query($upd_sql, array($key+1, $csv_id, $val)); 168 } 169 } 170 } 171 172 Function Lfcheckerror($data){ 173 $objErr = new SC_CheckError(); 174 $objErr->doFunc( array("出力項目", "output_list"), array("EXIST_CHECK") ); 175 176 return $objErr->arrErr; 177 248 $arrWhereVal = array($csv_id, $val); 249 $arrUpdVal['rank'] = $key + 1; 250 $objQuery->update($table, $arrUpdVal, $where, $arrWhereVal); 251 } 252 } 253 $objQuery->commit(); 254 return true; 178 255 } 179 256 }
Note: See TracChangeset
for help on using the changeset viewer.