[Svn-src-all:1442] [version-2_5-dev 20334] #974 [管理画面]システム設定 メンバー削除
homan
admin @ mail.ec-cube.net
2011年 2月 23日 (水) 03:27:13 JST
Subversion committed to /home/svn/open 20334
http://svn.ec-cube.net/open_trac/changeset/20334
┌────────────────────────────┐
│更新者 : homan │
│更新日時: 2011-02-23 03:27:12 +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_Delete.php
変更: branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Delete.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Delete.php 2011-02-22 18:20:57 UTC (rev 20333)
+++ branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Delete.php 2011-02-22 18:27:12 UTC (rev 20334)
@@ -25,7 +25,7 @@
require_once(CLASS_REALDIR . "pages/admin/LC_Page_Admin.php");
/**
- * XXX のページクラス.
+ * メンバー削除 のページクラス.
*
* @package Page
* @author LOCKON CO.,LTD.
@@ -61,34 +61,31 @@
* @return void
*/
function action() {
+
// 認証可否の判定
- $objSess = new SC_Session();
- SC_Utils_Ex::sfIsSuccess($objSess);
+ SC_Utils_Ex::sfIsSuccess(new SC_Session());
- $this->initParam();
+ $objFormParam = new SC_FormParam;
+ // パラメータの初期化
+ $this->initParam($objFormParam, $_GET);
+
// パラメータの検証
- if ($this->objForm->checkError()
- || !SC_Utils_ex::sfIsInt($id = $this->objForm->getValue('id'))) {
+ if ($objFormParam->checkError()
+ || !SC_Utils_ex::sfIsInt($id = $objFormParam->getValue('id'))) {
GC_Utils_Ex::gfPrintLog("error id=$id");
SC_Utils_Ex::sfDispError(INVALID_MOVE_ERRORR);
}
- $id = $this->objForm->getValue('id');
+ $id = $objFormParam->getValue('id');
// レコードの削除
- $objQuery =& new SC_Query;
- $objQuery->begin();
+ $this->deleteMember($id);
- $this->renumberRank($objQuery, $id);
- $this->deleteRecode($objQuery, $id);
-
- $objQuery->commit();
-
// リダイレクト
$url = $this->getLocation(ADMIN_SYSTEM_URLPATH)
- . '?pageno=' . $this->objForm->getValue('pageno');
+ . '?pageno=' . $objFormParam->getValue('pageno');
SC_Response_Ex::sendRedirect($url);
}
@@ -101,55 +98,77 @@
parent::destroy();
}
- function initParam() {
- $objForm = new SC_FormParam;
- $objForm->addParam('pageno', 'pageno', INT_LEN, '', array('NUM_CHECK', 'MAX_LENGTH_CHECK', 'EXIST_CHECK'));
- $objForm->addParam('id', 'id', INT_LEN, '', array('NUM_CHECK', 'MAX_LENGTH_CHECK'));
- $objForm->setParam($_GET);
- $this->objForm = $objForm;
+ /**
+ * パラメータ初期化.
+ *
+ * @param object $objFormParam
+ * @param array $arrParams $_GET値
+ * @return void
+ */
+ function initParam(&$objFormParam, &$arrParams) {
+
+ $objFormParam->addParam('pageno', 'pageno', INT_LEN, '', array('NUM_CHECK', 'MAX_LENGTH_CHECK', 'EXIST_CHECK'));
+ $objFormParam->addParam('id', 'id', INT_LEN, '', array('NUM_CHECK', 'MAX_LENGTH_CHECK'));
+ $objFormParam->setParam($arrParams);
+
}
- // ランキングの振り直し
+ /**
+ * メンバー情報削除の為の制御.
+ *
+ * @param integer $id 削除対象のmember_id
+ * @return void
+ */
+ function deleteMember($id) {
+ $objQuery =& SC_Query::getSingletonInstance();
+ $objQuery->begin();
+
+ $this->renumberRank($objQuery, $id);
+ $this->deleteRecode($objQuery, $id);
+
+ $objQuery->commit();
+ }
+
+
+ /**
+ * ランキングの振り直し.
+ *
+ * @param object $objQuery
+ * @param integer $id 削除対象のmember_id
+ * @return void|UPDATE の結果フラグ
+ */
function renumberRank(&$objQuery, $id) {
- $where = "member_id = ?";
+
// ランクの取得
- $rank = $objQuery->get("rank", "dtb_member", $where, array($id));
+ $where1 = "member_id = ?";
+ $rank = $objQuery->get("rank", "dtb_member", $where1, array($id));
- // 削除したレコードより上のランキングを下げてRANKの空きを埋める。
- $sqlup =<<<END
- UPDATE
- dtb_member
- SET
- rank = (rank - 1)
- WHERE
- rank > ? AND del_flg <> 1
-END;
- // UPDATEの実行
- return $objQuery->query($sqlup, array($rank));
+ // Updateする値を作成する.
+ $where2 = "rank > ? AND del_flg <> 1";
+
+ // UPDATEの実行 - 削除したレコードより上のランキングを下げてRANKの空きを埋める。
+ return $objQuery->update("dtb_member", array(), $where2, array($rank), array('rank' => 'rank-1'));
}
- // レコードの削除(削除フラグをONにする)
+
+ /**
+ * レコードの削除(削除フラグをONにする).
+ *
+ * @param object $objQuery
+ * @param integer $id 削除対象のmember_id
+ * @return void|UPDATE の結果フラグ
+ */
function deleteRecode(&$objQuery, $id) {
- // ランクを最下位にする、DELフラグON
- $sqlup =<<<END
- UPDATE
- dtb_member
- SET
- rank = 0,
- del_flg = 1
- WHERE
- member_id = ?
-END;
- // UPDATEの実行
- return $objQuery->query($sqlup, array($id));
- }
+ // Updateする値を作成する.
+ $sqlVal = array();
+ $sqlVal['rank'] = 0;
+ $sqlVal['del_flg'] = 1;
+ $where = "member_id = ?";
+ // UPDATEの実行 - ランクを最下位にする、DELフラグON
+ return $objQuery->update("dtb_member", $sqlVal, $where, array($id));
+ }
}
-/*
- * Local variables:
- * coding: utf-8
- * End:
- */
?>
Svn-src-all メーリングリストの案内