Ignore:
Timestamp:
2011/02/23 02:20:33 (13 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_Rank.php

    r20116 r20332  
    6161     */ 
    6262    function action() { 
    63         $objQuery = new SC_Query(); 
    6463 
    6564        // ログインチェック 
    6665        SC_Utils::sfIsSuccess(new SC_Session()); 
    6766 
    68         // ランキングの変更 
    69         if($_GET['move'] == 'up') { 
    70             // 正当な数値であった場合 
    71             if(SC_Utils::sfIsInt($_GET['id'])){ 
    72                 $this->lfRunkUp($objQuery, $_GET['id']); 
    73             // エラー処理 
    74             } else { 
    75                 GC_Utils::gfPrintLog("error id=".$_GET['id']); 
    76             } 
    77         } else if($_GET['move'] == 'down') { 
    78             if(SC_Utils::sfIsInt($_GET['id'])){ 
    79                 $this->lfRunkDown($objQuery, $_GET['id']); 
    80             // エラー処理 
    81             } else { 
    82                 GC_Utils::gfPrintLog("error id=".$_GET['id']); 
     67        // チェック後のデータを格納 
     68        $arrClean = array(); 
     69 
     70        // $_GET['move'] が想定値かどうかチェック 
     71        switch($_GET['move']) { 
     72            case 'up': 
     73            case 'down': 
     74                $arrClean['move'] = $_GET['move']; 
     75                break; 
     76            default: 
     77                $arrClean['move'] = ""; 
     78                break; 
     79        } 
     80 
     81 
     82        // 正当な数値であればOK 
     83        if (SC_Utils::sfIsInt($_GET['id'])) { 
     84            $arrClean['id'] = $_GET['id']; 
     85 
     86            switch($arrClean['move']) { 
     87                case 'up': 
     88                    $this->lfRunkUp($arrClean['id']); 
     89                    break; 
     90 
     91                case 'down': 
     92                    $this->lfRunkDown($arrClean['id']); 
     93                    break; 
     94 
     95                default: 
     96                    break; 
    8397            } 
    8498        } 
    8599         
     100        // エラー処理 
     101        else { 
     102            GC_Utils::gfPrintLog("error id=".$_GET['id']); 
     103        } 
     104 
    86105        // ページの表示 
    87106        SC_Response_Ex::sendRedirect(ADMIN_SYSTEM_URLPATH); 
     
    98117 
    99118    // ランキングを上げる。 
    100     function lfRunkUp($objQuery, $id) { 
     119    function lfRunkUp($id) { 
     120        $objQuery =& SC_Query::getSingletonInstance(); 
     121 
    101122        // 自身のランクを取得する。 
    102         $rank = $objQuery->getOne("SELECT rank FROM dtb_member WHERE member_id = ".$id); 
     123        $rank = $objQuery->getOne("SELECT rank FROM dtb_member WHERE member_id = ?", array($id)); 
     124 
    103125        // ランクの最大値を取得する。 
    104126        $maxno = $objQuery->getOne("SELECT max(rank) FROM dtb_member"); 
     
    108130            $sqlse = "SELECT member_id FROM dtb_member WHERE rank = ?"; 
    109131            $up_id = $objQuery->getOne($sqlse, $rank + 1); 
     132 
     133            // Updateする値を作成する. 
     134            $sqlVal1 = array(); 
     135            $sqlVal2 = array(); 
     136            $sqlVal1['rank'] = $rank + 1; 
     137            $sqlVal2['rank'] = $rank; 
     138            $where = "member_id = ?"; 
     139 
    110140            // ランク入れ替えの実行 
    111141            $objQuery->begin(); 
    112             $sqlup = "UPDATE dtb_member SET rank = ? WHERE member_id = ?"; 
    113             $objQuery->query($sqlup, array($rank + 1, $id)); 
    114             $objQuery->query($sqlup, array($rank, $up_id)); 
     142            $objQuery->update("dtb_member", $sqlVal1, $where, array($id)); 
     143            $objQuery->update("dtb_member", $sqlVal2, $where, array($up_id)); 
    115144            $objQuery->commit(); 
    116145        } 
     
    118147 
    119148    // ランキングを下げる。 
    120     function lfRunkDown($objQuery, $id) { 
     149    function lfRunkDown($id) { 
     150        $objQuery =& SC_Query::getSingletonInstance(); 
     151 
    121152        // 自身のランクを取得する。 
    122         $rank = $objQuery->getOne("SELECT rank FROM dtb_member WHERE member_id = ".$id); 
     153        $rank = $objQuery->getOne("SELECT rank FROM dtb_member WHERE member_id = ?", array($id)); 
    123154        // ランクの最小値を取得する。 
    124155        $minno = $objQuery->getOne("SELECT min(rank) FROM dtb_member"); 
     
    128159            $sqlse = "SELECT member_id FROM dtb_member WHERE rank = ?"; 
    129160            $down_id = $objQuery->getOne($sqlse, $rank - 1); 
     161 
     162            // Updateする値を作成する. 
     163            $sqlVal1 = array(); 
     164            $sqlVal2 = array(); 
     165            $sqlVal1['rank'] = $rank - 1; 
     166            $sqlVal2['rank'] = $rank; 
     167            $where = "member_id = ?"; 
     168 
    130169            // ランク入れ替えの実行 
    131170            $objQuery->begin(); 
    132             $sqlup = "UPDATE dtb_member SET rank = ? WHERE member_id = ?"; 
    133             $objQuery->query($sqlup, array($rank - 1, $id)); 
    134             $objQuery->query($sqlup, array($rank, $down_id)); 
    135             $objQuery->query("COMMIT"); 
     171            $objQuery->update("dtb_member", $sqlVal1, $where, array($id)); 
     172            $objQuery->update("dtb_member", $sqlVal2, $where, array($down_id)); 
     173            $objQuery->commit(); 
    136174        } 
    137175    } 
Note: See TracChangeset for help on using the changeset viewer.