Changeset 20334
- Timestamp:
- 2011/02/23 03:27:12 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Delete.php
r19943 r20334 26 26 27 27 /** 28 * XXXのページクラス.28 * メンバー削除 のページクラス. 29 29 * 30 30 * @package Page … … 62 62 */ 63 63 function action() { 64 64 65 // 認証可否の判定 65 $objSess = new SC_Session(); 66 SC_Utils_Ex::sfIsSuccess($objSess); 66 SC_Utils_Ex::sfIsSuccess(new SC_Session()); 67 67 68 $this->initParam(); 68 $objFormParam = new SC_FormParam; 69 70 // パラメータの初期化 71 $this->initParam($objFormParam, $_GET); 69 72 70 73 // パラメータの検証 71 if ($ this->objForm->checkError()72 || !SC_Utils_ex::sfIsInt($id = $ this->objForm->getValue('id'))) {74 if ($objFormParam->checkError() 75 || !SC_Utils_ex::sfIsInt($id = $objFormParam->getValue('id'))) { 73 76 74 77 GC_Utils_Ex::gfPrintLog("error id=$id"); … … 76 79 } 77 80 78 $id = $ this->objForm->getValue('id');81 $id = $objFormParam->getValue('id'); 79 82 80 83 // レコードの削除 81 $objQuery =& new SC_Query; 82 $objQuery->begin(); 83 84 $this->renumberRank($objQuery, $id); 85 $this->deleteRecode($objQuery, $id); 86 87 $objQuery->commit(); 84 $this->deleteMember($id); 88 85 89 86 // リダイレクト 90 87 $url = $this->getLocation(ADMIN_SYSTEM_URLPATH) 91 . '?pageno=' . $ this->objForm->getValue('pageno');88 . '?pageno=' . $objFormParam->getValue('pageno'); 92 89 SC_Response_Ex::sendRedirect($url); 93 90 } … … 102 99 } 103 100 104 function initParam() {105 $objForm = new SC_FormParam;106 $objForm->addParam('pageno', 'pageno', INT_LEN, '', array('NUM_CHECK', 'MAX_LENGTH_CHECK', 'EXIST_CHECK'));107 $objForm->addParam('id', 'id', INT_LEN, '', array('NUM_CHECK', 'MAX_LENGTH_CHECK'));108 $objForm->setParam($_GET);109 101 110 $this->objForm = $objForm; 102 /** 103 * パラメータ初期化. 104 * 105 * @param object $objFormParam 106 * @param array $arrParams $_GET値 107 * @return void 108 */ 109 function initParam(&$objFormParam, &$arrParams) { 110 111 $objFormParam->addParam('pageno', 'pageno', INT_LEN, '', array('NUM_CHECK', 'MAX_LENGTH_CHECK', 'EXIST_CHECK')); 112 $objFormParam->addParam('id', 'id', INT_LEN, '', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); 113 $objFormParam->setParam($arrParams); 114 111 115 } 112 116 113 // ランキングの振り直し 114 function renumberRank(&$objQuery, $id) { 115 $where = "member_id = ?"; 116 // ランクの取得 117 $rank = $objQuery->get("rank", "dtb_member", $where, array($id)); 117 /** 118 * メンバー情報削除の為の制御. 119 * 120 * @param integer $id 削除対象のmember_id 121 * @return void 122 */ 123 function deleteMember($id) { 124 $objQuery =& SC_Query::getSingletonInstance(); 125 $objQuery->begin(); 118 126 119 // 削除したレコードより上のランキングを下げてRANKの空きを埋める。 120 $sqlup =<<<END 121 UPDATE 122 dtb_member 123 SET 124 rank = (rank - 1) 125 WHERE 126 rank > ? AND del_flg <> 1 127 END; 128 // UPDATEの実行 129 return $objQuery->query($sqlup, array($rank)); 130 } 127 $this->renumberRank($objQuery, $id); 128 $this->deleteRecode($objQuery, $id); 131 129 132 // レコードの削除(削除フラグをONにする) 133 function deleteRecode(&$objQuery, $id) { 134 // ランクを最下位にする、DELフラグON 135 $sqlup =<<<END 136 UPDATE 137 dtb_member 138 SET 139 rank = 0, 140 del_flg = 1 141 WHERE 142 member_id = ? 143 END; 144 // UPDATEの実行 145 return $objQuery->query($sqlup, array($id)); 130 $objQuery->commit(); 146 131 } 147 132 148 133 134 /** 135 * ランキングの振り直し. 136 * 137 * @param object $objQuery 138 * @param integer $id 削除対象のmember_id 139 * @return void|UPDATE の結果フラグ 140 */ 141 function renumberRank(&$objQuery, $id) { 142 143 // ランクの取得 144 $where1 = "member_id = ?"; 145 $rank = $objQuery->get("rank", "dtb_member", $where1, array($id)); 146 147 // Updateする値を作成する. 148 $where2 = "rank > ? AND del_flg <> 1"; 149 150 // UPDATEの実行 - 削除したレコードより上のランキングを下げてRANKの空きを埋める。 151 return $objQuery->update("dtb_member", array(), $where2, array($rank), array('rank' => 'rank-1')); 152 } 153 154 155 /** 156 * レコードの削除(削除フラグをONにする). 157 * 158 * @param object $objQuery 159 * @param integer $id 削除対象のmember_id 160 * @return void|UPDATE の結果フラグ 161 */ 162 function deleteRecode(&$objQuery, $id) { 163 164 // Updateする値を作成する. 165 $sqlVal = array(); 166 $sqlVal['rank'] = 0; 167 $sqlVal['del_flg'] = 1; 168 $where = "member_id = ?"; 169 170 // UPDATEの実行 - ランクを最下位にする、DELフラグON 171 return $objQuery->update("dtb_member", $sqlVal, $where, array($id)); 172 } 149 173 } 150 /*151 * Local variables:152 * coding: utf-8153 * End:154 */155 174 ?>
Note: See TracChangeset
for help on using the changeset viewer.