[Svn-src-all:1440] [version-2_5-dev 20332] #974 [管理画面]システム設定 メンバー一覧用ランク制御
homan
admin @ mail.ec-cube.net
2011年 2月 23日 (水) 02:20:34 JST
Subversion committed to /home/svn/open 20332
http://svn.ec-cube.net/open_trac/changeset/20332
┌────────────────────────────┐
│更新者 : homan │
│更新日時: 2011-02-23 02:20:33 +0900 (水, 23 2月 2011)│
└────────────────────────────┘
Log:
--------------------------------------------------------
#974 [管理画面]システム設定 メンバー一覧用ランク制御
Changed: [U:修正,A:追加,D:削除]
--------------------------------------------------------
U branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Rank.php
変更: branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Rank.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Rank.php 2011-02-22 15:36:32 UTC (rev 20331)
+++ branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Rank.php 2011-02-22 17:20:33 UTC (rev 20332)
@@ -60,29 +60,48 @@
* @return void
*/
function action() {
- $objQuery = new SC_Query();
// ログインチェック
SC_Utils::sfIsSuccess(new SC_Session());
- // ランキングの変更
- if($_GET['move'] == 'up') {
- // 正当な数値であった場合
- if(SC_Utils::sfIsInt($_GET['id'])){
- $this->lfRunkUp($objQuery, $_GET['id']);
- // エラー処理
- } else {
- GC_Utils::gfPrintLog("error id=".$_GET['id']);
+ // チェック後のデータを格納
+ $arrClean = array();
+
+ // $_GET['move'] が想定値かどうかチェック
+ switch($_GET['move']) {
+ case 'up':
+ case 'down':
+ $arrClean['move'] = $_GET['move'];
+ break;
+ default:
+ $arrClean['move'] = "";
+ break;
+ }
+
+
+ // 正当な数値であればOK
+ if (SC_Utils::sfIsInt($_GET['id'])) {
+ $arrClean['id'] = $_GET['id'];
+
+ switch($arrClean['move']) {
+ case 'up':
+ $this->lfRunkUp($arrClean['id']);
+ break;
+
+ case 'down':
+ $this->lfRunkDown($arrClean['id']);
+ break;
+
+ default:
+ break;
}
- } else if($_GET['move'] == 'down') {
- if(SC_Utils::sfIsInt($_GET['id'])){
- $this->lfRunkDown($objQuery, $_GET['id']);
- // エラー処理
- } else {
- GC_Utils::gfPrintLog("error id=".$_GET['id']);
- }
}
+ // エラー処理
+ else {
+ GC_Utils::gfPrintLog("error id=".$_GET['id']);
+ }
+
// ページの表示
SC_Response_Ex::sendRedirect(ADMIN_SYSTEM_URLPATH);
}
@@ -97,9 +116,12 @@
}
// ランキングを上げる。
- function lfRunkUp($objQuery, $id) {
+ function lfRunkUp($id) {
+ $objQuery =& SC_Query::getSingletonInstance();
+
// 自身のランクを取得する。
- $rank = $objQuery->getOne("SELECT rank FROM dtb_member WHERE member_id = ".$id);
+ $rank = $objQuery->getOne("SELECT rank FROM dtb_member WHERE member_id = ?", array($id));
+
// ランクの最大値を取得する。
$maxno = $objQuery->getOne("SELECT max(rank) FROM dtb_member");
// ランクが最大値よりも小さい場合に実行する。
@@ -107,19 +129,28 @@
// ランクがひとつ上のIDを取得する。
$sqlse = "SELECT member_id FROM dtb_member WHERE rank = ?";
$up_id = $objQuery->getOne($sqlse, $rank + 1);
+
+ // Updateする値を作成する.
+ $sqlVal1 = array();
+ $sqlVal2 = array();
+ $sqlVal1['rank'] = $rank + 1;
+ $sqlVal2['rank'] = $rank;
+ $where = "member_id = ?";
+
// ランク入れ替えの実行
$objQuery->begin();
- $sqlup = "UPDATE dtb_member SET rank = ? WHERE member_id = ?";
- $objQuery->query($sqlup, array($rank + 1, $id));
- $objQuery->query($sqlup, array($rank, $up_id));
+ $objQuery->update("dtb_member", $sqlVal1, $where, array($id));
+ $objQuery->update("dtb_member", $sqlVal2, $where, array($up_id));
$objQuery->commit();
}
}
// ランキングを下げる。
- function lfRunkDown($objQuery, $id) {
+ function lfRunkDown($id) {
+ $objQuery =& SC_Query::getSingletonInstance();
+
// 自身のランクを取得する。
- $rank = $objQuery->getOne("SELECT rank FROM dtb_member WHERE member_id = ".$id);
+ $rank = $objQuery->getOne("SELECT rank FROM dtb_member WHERE member_id = ?", array($id));
// ランクの最小値を取得する。
$minno = $objQuery->getOne("SELECT min(rank) FROM dtb_member");
// ランクが最大値よりも大きい場合に実行する。
@@ -127,12 +158,19 @@
// ランクがひとつ下のIDを取得する。
$sqlse = "SELECT member_id FROM dtb_member WHERE rank = ?";
$down_id = $objQuery->getOne($sqlse, $rank - 1);
+
+ // Updateする値を作成する.
+ $sqlVal1 = array();
+ $sqlVal2 = array();
+ $sqlVal1['rank'] = $rank - 1;
+ $sqlVal2['rank'] = $rank;
+ $where = "member_id = ?";
+
// ランク入れ替えの実行
$objQuery->begin();
- $sqlup = "UPDATE dtb_member SET rank = ? WHERE member_id = ?";
- $objQuery->query($sqlup, array($rank - 1, $id));
- $objQuery->query($sqlup, array($rank, $down_id));
- $objQuery->query("COMMIT");
+ $objQuery->update("dtb_member", $sqlVal1, $where, array($id));
+ $objQuery->update("dtb_member", $sqlVal2, $where, array($down_id));
+ $objQuery->commit();
}
}
}
Svn-src-all メーリングリストの案内