Changeset 20334


Ignore:
Timestamp:
2011/02/23 03:27:12 (11 years ago)
Author:
homan
Message:

#974 [管理画面]システム設定 メンバー削除

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  
    2626 
    2727/** 
    28  * XXX のページクラス. 
     28 * メンバー削除 のページクラス. 
    2929 * 
    3030 * @package Page 
     
    6262     */ 
    6363    function action() { 
     64 
    6465        // 認証可否の判定 
    65         $objSess = new SC_Session(); 
    66         SC_Utils_Ex::sfIsSuccess($objSess); 
     66        SC_Utils_Ex::sfIsSuccess(new SC_Session()); 
    6767 
    68         $this->initParam(); 
     68        $objFormParam = new SC_FormParam; 
     69 
     70        // パラメータの初期化 
     71        $this->initParam($objFormParam, $_GET); 
    6972 
    7073        // パラメータの検証 
    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'))) { 
    7376 
    7477            GC_Utils_Ex::gfPrintLog("error id=$id"); 
     
    7679        } 
    7780 
    78         $id = $this->objForm->getValue('id'); 
     81        $id = $objFormParam->getValue('id'); 
    7982 
    8083        // レコードの削除 
    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); 
    8885 
    8986        // リダイレクト 
    9087        $url = $this->getLocation(ADMIN_SYSTEM_URLPATH) 
    91              . '?pageno=' . $this->objForm->getValue('pageno'); 
     88             . '?pageno=' . $objFormParam->getValue('pageno'); 
    9289        SC_Response_Ex::sendRedirect($url); 
    9390    } 
     
    10299    } 
    103100 
    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); 
    109101 
    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 
    111115    } 
    112116 
    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(); 
    118126 
    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); 
    131129 
    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(); 
    146131    } 
    147132 
    148133 
     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    } 
    149173} 
    150 /* 
    151  * Local variables: 
    152  * coding: utf-8 
    153  * End: 
    154  */ 
    155174?> 
Note: See TracChangeset for help on using the changeset viewer.