[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 メーリングリストの案内