Changeset 22796 for branches/version-2_12-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Maker.php
- Timestamp:
- 2013/05/02 18:11:36 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_12-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Maker.php
r22578 r22796 32 32 * @version $Id$ 33 33 */ 34 class LC_Page_Admin_Products_Maker extends LC_Page_Admin_Ex 35 { 34 class LC_Page_Admin_Products_Maker extends LC_Page_Admin_Ex { 36 35 37 36 // }}} … … 43 42 * @return void 44 43 */ 45 function init() 46 { 44 function init() { 47 45 parent::init(); 48 46 $this->tpl_mainpage = 'products/maker.tpl'; … … 58 56 * @return void 59 57 */ 60 function process() 61 { 58 function process() { 62 59 $this->action(); 63 60 $this->sendResponse(); … … 69 66 * @return void 70 67 */ 71 function action() 72 { 73 74 $objMaker = new SC_Helper_Maker_Ex(); 68 function action() { 69 75 70 $objFormParam = new SC_FormParam_Ex(); 76 71 … … 87 82 $maker_id = $objFormParam->getValue('maker_id'); 88 83 84 // 変換後のPOST値を取得 85 $this->arrForm = $objFormParam->getHashArray(); 86 89 87 // モードによる処理切り替え 90 88 switch ($this->getMode()) { … … 92 90 // 編集処理 93 91 case 'edit': 92 // 入力文字の変換 93 94 94 // エラーチェック 95 $this->arrErr = $this->lfCheckError($objFormParam, $objMaker); 96 if (!SC_Utils_Ex::isBlank($this->arrErr['maker_id'])) { 97 trigger_error('', E_USER_ERROR); 98 return; 95 $this->arrErr = $this->lfCheckError($this->arrForm, $objFormParam); 96 if (count($this->arrErr) <= 0) { 97 if ($this->arrForm['maker_id'] == '') { 98 // メーカー情報新規登録 99 $this->lfInsert($this->arrForm); 100 } else { 101 // メーカー情報編集 102 $this->lfUpdate($this->arrForm); 103 } 104 105 // 再表示 106 $this->objDisplay->reload(); 107 } else { 108 // POSTデータを引き継ぐ 109 $this->tpl_maker_id = $this->arrForm['maker_id']; 99 110 } 100 101 if (count($this->arrErr) <= 0) {102 // POST値の引き継ぎ103 $arrParam = $objFormParam->getHashArray();104 // 登録実行105 $res_maker_id = $this->doRegist($maker_id, $arrParam, $objMaker);106 if ($res_maker_id !== FALSE) {107 // 完了メッセージ108 $maker_id = $res_maker_id;109 $this->tpl_onload = "alert('登録が完了しました。');";110 }111 }112 // POSTデータを引き継ぐ113 $this->tpl_maker_id = $maker_id;114 111 break; 115 112 116 113 // 編集前処理 117 114 case 'pre_edit': 118 $maker = $objMaker->get($maker_id); 119 $objFormParam->setParam($maker); 120 121 // POSTデータを引き継ぐ 122 $this->tpl_maker_id = $maker_id; 115 $this->arrForm = $this->lfPreEdit($this->arrForm, $this->arrForm['maker_id']); 116 $this->tpl_maker_id = $this->arrForm['maker_id']; 123 117 break; 124 118 125 119 // メーカー順変更 126 120 case 'up': 127 $objMaker->rankUp($maker_id); 121 case 'down': 122 $this->lfRankChange($this->arrForm['maker_id'], $this->getMode()); 128 123 129 124 // リロード … … 131 126 break; 132 127 133 case 'down': 134 $objMaker->rankDown($maker_id); 128 // 削除 129 case 'delete': 130 $this->lfDelete($this->arrForm['maker_id']); 135 131 136 132 // リロード … … 138 134 break; 139 135 140 // 削除141 case 'delete':142 $objMaker->delete($maker_id);143 144 // リロード145 SC_Response_Ex::reload();146 break;147 148 136 default: 149 137 break; 150 138 } 151 139 152 $this->arrForm = $objFormParam->getFormParamList();153 154 140 // メーカー情報読み込み 155 $this->arrMaker = $objMaker->getList(); 141 $this->arrMaker = $this->lfDisp(); 142 // POSTデータを引き継ぐ 143 $this->tpl_maker_id = $maker_id; 144 156 145 } 157 146 … … 161 150 * @return void 162 151 */ 163 function destroy() 164 { 152 function destroy() { 165 153 parent::destroy(); 166 154 } … … 172 160 * @return void 173 161 */ 174 function lfInitParam(&$objFormParam) 175 { 162 function lfInitParam(&$objFormParam) { 176 163 $objFormParam->addParam('メーカーID', 'maker_id', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); 177 164 $objFormParam->addParam('メーカー名', 'name', SMTEXT_LEN, 'KVa', array('EXIST_CHECK','SPTAB_CHECK','MAX_LENGTH_CHECK')); … … 179 166 180 167 /** 181 * 登録処理を実行. 182 * 183 * @param integer $maker_id 184 * @param array $sqlval 185 * @param object $objMaker 186 * @return multiple 187 */ 188 function doRegist($maker_id, $sqlval, SC_Helper_Maker_Ex $objMaker) 189 { 190 $sqlval['maker_id'] = $maker_id; 168 * メーカー情報表示. 169 * 170 * @return array $arrMaker メーカー情報 171 */ 172 function lfDisp() { 173 $objQuery =& SC_Query_Ex::getSingletonInstance(); 174 175 // 削除されていないメーカー情報を表示する 176 $where = 'del_flg = 0'; 177 $objQuery->setOrder('rank DESC'); 178 $arrMaker = array(); 179 $arrMaker = $objQuery->select('maker_id, name', 'dtb_maker', $where); 180 return $arrMaker; 181 } 182 183 /** 184 * メーカー情報新規登録. 185 * 186 * @param array $arrForm メーカー情報 187 * @return void 188 */ 189 function lfInsert(&$arrForm) { 190 $objQuery =& SC_Query_Ex::getSingletonInstance(); 191 192 // INSERTする値を作成する 193 $sqlval['name'] = $arrForm['name']; 194 $sqlval['rank'] = $objQuery->max('rank', 'dtb_maker') + 1; 191 195 $sqlval['creator_id'] = $_SESSION['member_id']; 192 return $objMaker->save($sqlval); 196 $sqlval['update_date'] = 'CURRENT_TIMESTAMP'; 197 $sqlval['create_date'] = 'CURRENT_TIMESTAMP'; 198 $sqlval['maker_id'] = $objQuery->nextVal('dtb_maker_maker_id'); 199 200 // INSERTの実行 201 $objQuery->insert('dtb_maker', $sqlval); 202 } 203 204 /** 205 * メーカー情報更新. 206 * 207 * @param array $arrForm メーカー情報 208 * @return void 209 */ 210 function lfUpdate(&$arrForm) { 211 $objQuery =& SC_Query_Ex::getSingletonInstance(); 212 213 // UPDATEする値を作成する 214 $sqlval['name'] = $arrForm['name']; 215 $sqlval['update_date'] = 'CURRENT_TIMESTAMP'; 216 $where = 'maker_id = ?'; 217 218 // UPDATEの実行 219 $objQuery->update('dtb_maker', $sqlval, $where, array($arrForm['maker_id'])); 220 } 221 222 /** 223 * メーカー情報削除. 224 * 225 * @param integer $maker_id メーカーID 226 * @return void 227 */ 228 function lfDelete($maker_id) { 229 $objDb = new SC_Helper_DB_Ex(); 230 $objDb->sfDeleteRankRecord('dtb_maker', 'maker_id', $maker_id, '', true); 231 } 232 233 /** 234 * メーカー情報順番変更. 235 * 236 * @param integer $maker_id メーカーID 237 * @param string $mode up か down のモードを示す文字列 238 * @return void 239 */ 240 function lfRankChange($maker_id, $mode) { 241 $objDb = new SC_Helper_DB_Ex(); 242 243 switch ($mode) { 244 case 'up': 245 $objDb->sfRankUp('dtb_maker', 'maker_id', $maker_id); 246 break; 247 248 case 'down': 249 $objDb->sfRankDown('dtb_maker', 'maker_id', $maker_id); 250 break; 251 252 default: 253 break; 254 } 255 } 256 257 /** 258 * メーカー情報編集前処理. 259 * 260 * @param array $arrForm メーカー情報 261 * @param integer $maker_id メーカーID 262 * @return array $arrForm メーカー名を追加 263 */ 264 function lfPreEdit(&$arrForm, $maker_id) { 265 $objQuery =& SC_Query_Ex::getSingletonInstance(); 266 267 // 編集項目を取得する 268 $where = 'maker_id = ?'; 269 $arrMaker = array(); 270 $arrMaker = $objQuery->select('name', 'dtb_maker', $where, array($maker_id)); 271 $arrForm['name'] = $arrMaker[0]['name']; 272 273 return $arrForm; 193 274 } 194 275 … … 196 277 * 入力エラーチェック. 197 278 * 279 * @param array $arrForm メーカー情報 198 280 * @return array $objErr->arrErr エラー内容 199 281 */ 200 function lfCheckError(&$objFormParam, SC_Helper_Maker_Ex &$objMaker) 201 { 282 function lfCheckError(&$arrForm, &$objFormParam) { 202 283 203 284 $arrErr = $objFormParam->checkError(); 204 $arrForm = $objFormParam->getHashArray(); 285 if (!empty($arrErr)) { 286 return $arrErr; 287 } 205 288 206 289 // maker_id の正当性チェック 207 290 if (!empty($arrForm['maker_id'])) { 291 $objDb = new SC_Helper_DB_Ex(); 208 292 if (!SC_Utils_Ex::sfIsInt($arrForm['maker_id']) 209 293 || SC_Utils_Ex::sfIsZeroFilling($arrForm['maker_id']) 210 || !$obj Maker->get($arrForm['maker_id'])294 || !$objDb->sfIsRecord('dtb_maker', 'maker_id', array($arrForm['maker_id'])) 211 295 ) { 212 296 // maker_idが指定されていて、且つその値が不正と思われる場合はエラー … … 215 299 } 216 300 if (!isset($arrErr['name'])) { 217 $arrMaker = $objMaker->getByName($arrForm['name']); 301 $objQuery =& SC_Query_Ex::getSingletonInstance(); 302 $arrMaker = array(); 303 $arrMaker = $objQuery->select('maker_id, name', 'dtb_maker', 'del_flg = 0 AND name = ?', array($arrForm['name'])); 218 304 219 305 // 編集中のレコード以外に同じ名称が存在する場合 220 if ( 221 !SC_Utils_Ex::isBlank($arrMaker) 222 && $arrMaker['maker_id'] != $arrForm['maker_id'] 223 && $arrMaker['name'] == $arrForm['name'] 224 ) { 306 if ($arrMaker[0]['maker_id'] != $arrForm['maker_id'] && $arrMaker[0]['name'] == $arrForm['name']) { 225 307 $arrErr['name'] = '※ 既に同じ内容の登録が存在します。<br />'; 226 308 }
Note: See TracChangeset
for help on using the changeset viewer.