[Svn-src-all:3658] [version-2_12-dev 22570] #2152 pageクラスからdtb_kiyakuテーブルを直接指定している箇所をなくす

pineray admin @ mail.ec-cube.net
2013年 2月 19日 (火) 19:24:42 JST


Subversion committed to /home/svn/open 22570
http://svn.ec-cube.net/open_trac/changeset/22570
┌────────────────────────────┐
│更新者 :  pineray                                      │
│更新日時:  2013-02-19 19:24:42 +0900 (火, 19  2月 2013)│
└────────────────────────────┘

Log:
--------------------------------------------------------
#2152 pageクラスからdtb_kiyakuテーブルを直接指定している箇所をなくす

Changed:                      [U:修正,A:追加,D:削除]
--------------------------------------------------------
A   branches/version-2_12-dev/data/class/helper/SC_Helper_Kiyaku.php
U   branches/version-2_12-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Kiyaku.php
U   branches/version-2_12-dev/data/class/pages/entry/LC_Page_Entry_Kiyaku.php
U   branches/version-2_12-dev/data/class/pages/guide/LC_Page_Guide_Kiyaku.php
A   branches/version-2_12-dev/data/class_extends/helper_extends/SC_Helper_Kiyaku_Ex.php

追加: branches/version-2_12-dev/data/class/helper/SC_Helper_Kiyaku.php
===================================================================
--- branches/version-2_12-dev/data/class/helper/SC_Helper_Kiyaku.php	                        (rev 0)
+++ branches/version-2_12-dev/data/class/helper/SC_Helper_Kiyaku.php	2013-02-19 10:24:42 UTC (rev 22570)
@@ -0,0 +1,160 @@
+<?php
+/*
+ * This file is part of EC-CUBE
+ *
+ * Copyright(c) 2000-2013 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+/**
+ * 会員規約を管理するヘルパークラス.
+ *
+ * @package Helper
+ * @author pineray
+ * @version $Id:$
+ */
+class SC_Helper_Kiyaku
+{
+    /**
+     * 会員規約の情報を取得.
+     * 
+     * @param integer $kiyaku_id 会員規約ID
+     * @param boolean $has_deleted 削除された会員規約も含む場合 true; 初期値 false
+     * @return array
+     */
+    public function get($kiyaku_id, $has_deleted = false)
+    {
+        $objQuery =& SC_Query_Ex::getSingletonInstance();
+        $where = 'kiyaku_id = ?';
+        if (!$has_deleted) {
+            $where .= ' AND del_flg = 0';
+        }
+        $arrRet = $objQuery->select('*', 'dtb_kiyaku', $where, array($kiyaku_id));
+        return $arrRet[0];
+    }
+
+    /**
+     * 会員規約一覧の取得.
+     *
+     * @param boolean $has_deleted 削除された会員規約も含む場合 true; 初期値 false
+     * @return array
+     */
+    public function getList($has_deleted = false)
+    {
+        $objQuery =& SC_Query_Ex::getSingletonInstance();
+        $col = 'kiyaku_id, kiyaku_title, kiyaku_text';
+        $where = '';
+        if (!$has_deleted) {
+            $where .= 'del_flg = 0';
+        }
+        $table = 'dtb_kiyaku';
+        $objQuery->setOrder('rank DESC');
+        $arrRet = $objQuery->select($col, $table, $where);
+        return $arrRet;
+    }
+
+    /**
+     * 会員規約の登録.
+     * 
+     * @param array $sqlval
+     * @return multiple 登録成功:会員規約ID, 失敗:FALSE
+     */
+    public function save($sqlval)
+    {
+        $objQuery =& SC_Query_Ex::getSingletonInstance();
+
+        $kiyaku_id = $sqlval['kiyaku_id'];
+        $sqlval['update_date'] = 'CURRENT_TIMESTAMP';
+        // 新規登録
+        if ($kiyaku_id == '') {
+            // INSERTの実行
+            $sqlval['rank'] = $objQuery->max('rank', 'dtb_kiyaku') + 1;
+            $sqlval['create_date'] = 'CURRENT_TIMESTAMP';
+            $sqlval['kiyaku_id'] = $objQuery->nextVal('dtb_kiyaku_kiyaku_id');
+            $ret = $objQuery->insert('dtb_kiyaku', $sqlval);
+        // 既存編集
+        } else {
+            unset($sqlval['creator_id']);
+            unset($sqlval['create_date']);
+            $where = 'kiyaku_id = ?';
+            $ret = $objQuery->update('dtb_kiyaku', $sqlval, $where, array($kiyaku_id));
+        }
+        return ($ret) ? $sqlval['kiyaku_id'] : FALSE;
+    }
+
+    /**
+     * 会員規約の削除.
+     * 
+     * @param integer $kiyaku_id 会員規約ID
+     * @return void
+     */
+    public function delete($kiyaku_id)
+    {
+        $objDb = new SC_Helper_DB_Ex();
+        // ランク付きレコードの削除
+        $objDb->sfDeleteRankRecord('dtb_kiyaku', 'kiyaku_id', $kiyaku_id);
+    }
+
+    /**
+     * 会員規約の表示順をひとつ上げる.
+     * 
+     * @param integer $kiyaku_id 会員規約ID
+     * @return void
+     */
+    public function rankUp($kiyaku_id)
+    {
+        $objDb = new SC_Helper_DB_Ex();
+        $objDb->sfRankUp('dtb_kiyaku', 'kiyaku_id', $kiyaku_id);
+    }
+
+    /**
+     * 会員規約の表示順をひとつ下げる.
+     * 
+     * @param integer $kiyaku_id 会員規約ID
+     * @return void
+     */
+    public function rankDown($kiyaku_id)
+    {
+        $objDb = new SC_Helper_DB_Ex();
+        $objDb->sfRankDown('dtb_kiyaku', 'kiyaku_id', $kiyaku_id);
+    }
+
+    /**
+     * 同じタイトルの規約が存在するか確認.
+     * 
+     * @param string $title 規約タイトル
+     * @param integer $kiyaku_id 会員規約ID
+     * @return boolean 同名のタイトルが存在:TRUE
+     */
+    public function isTitleExist($title, $kiyaku_id = NULL)
+    {
+        $objQuery =& SC_Query_Ex::getSingletonInstance();
+        
+        $where  = 'del_flg = 0 AND kiyaku_title = ?';
+        $arrVal = array($title);
+        
+        if(!SC_Utils_Ex::isBlank($kiyaku_id)) {
+            $where   .= ' AND kiyaku_id <> ?';
+            $arrVal[] = $kiyaku_id;
+        }
+        
+        $arrRet = $objQuery->select('kiyaku_id, kiyaku_title', 'dtb_kiyaku', $where, $arrVal);
+
+        return !SC_Utils_Ex::isBlank($arrRet);
+    }
+}

変更: branches/version-2_12-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Kiyaku.php
===================================================================
--- branches/version-2_12-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Kiyaku.php	2013-02-19 08:58:34 UTC (rev 22569)
+++ branches/version-2_12-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Kiyaku.php	2013-02-19 10:24:42 UTC (rev 22570)
@@ -71,7 +71,7 @@
     function action()
     {
 
-        $objDb = new SC_Helper_DB_Ex();
+        $objKiyaku = new SC_Helper_Kiyaku_Ex();
 
         $mode = $this->getMode();
         $objFormParam = new SC_FormParam_Ex();
@@ -86,21 +86,17 @@
             // 編集処理
             case 'confirm':
                 // エラーチェック
-                $this->arrErr = $this->lfCheckError($objFormParam);
+                $this->arrErr = $this->lfCheckError($objFormParam, $objKiyaku);
                 if (!SC_Utils_Ex::isBlank($this->arrErr['kiyaku_id'])) {
                     trigger_error('', E_USER_ERROR);
                     return;
                 }
 
-                // POST値の引き継ぎ
-                $arrParam = $objFormParam->getHashArray();
                 if (SC_Utils_Ex::isBlank($this->arrErr)) {
-                    if (SC_Utils_Ex::isBlank($kiyaku_id)) {
-                        $res_kiyaku_id = $this->lfInsertClass($arrParam, $_SESSION['member_id']);    // 新規作成
-                    } else {
-                        $res_kiyaku_id = $this->lfUpdateClass($arrParam, $kiyaku_id);    // 既存編集
-                    }
-
+                    // POST値の引き継ぎ
+                    $arrParam = $objFormParam->getHashArray();
+                    // 登録実行
+                    $res_kiyaku_id = $this->doRegist($kiyaku_id, $arrParam, $objKiyaku);
                     if ($res_kiyaku_id !== FALSE) {
                         // 完了メッセージ
                         $kiyaku_id = $res_kiyaku_id;
@@ -113,28 +109,28 @@
                 break;
             // 削除
             case 'delete':
-                $objDb->sfDeleteRankRecord('dtb_kiyaku', 'kiyaku_id', $kiyaku_id, '', true);
+                $objKiyaku->delete($kiyaku_id);
                 break;
 
             // 編集前処理
             case 'pre_edit':
                 // 編集項目を取得する。
-                $arrKiyakuData = $this->lfGetKiyakuDataByKiyakuID($kiyaku_id);
-                $objFormParam->setParam($arrKiyakuData[0]);
+                $arrKiyakuData = $objKiyaku->get($kiyaku_id);
+                $objFormParam->setParam($arrKiyakuData);
 
                 // 編集中の規約IDを渡す
                 $this->tpl_kiyaku_id = $kiyaku_id;
                 break;
 
             case 'down':
-                $objDb->sfRankDown('dtb_kiyaku', 'kiyaku_id', $kiyaku_id);
+                $objKiyaku->rankDown($kiyaku_id);
 
                 // 再表示
                 $this->objDisplay->reload();
                 break;
 
             case 'up':
-                $objDb->sfRankUp('dtb_kiyaku', 'kiyaku_id', $kiyaku_id);
+                $objKiyaku->rankUp($kiyaku_id);
 
                 // 再表示
                 $this->objDisplay->reload();
@@ -147,7 +143,7 @@
         $this->arrForm = $objFormParam->getFormParamList();
 
         // 規約一覧を取得
-        $this->arrKiyaku = $this->lfGetKiyakuList();
+        $this->arrKiyaku = $objKiyaku->getList();
 }
 
     /**
@@ -160,55 +156,21 @@
         parent::destroy();
     }
 
-    /* DBへの挿入 */
-    function lfInsertClass($arrData, $member_id)
+    /**
+     * 登録処理を実行.
+     * 
+     * @param integer $kiyaku_id
+     * @param array $sqlval
+     * @param object $objKiyaku
+     * @return multiple
+     */
+    function doRegist($kiyaku_id, $sqlval, SC_Helper_Kiyaku_Ex &$objKiyaku)
     {
-        $objQuery =& SC_Query_Ex::getSingletonInstance();
-        // INSERTする値を作成する。
-        $sqlval = array();
-        $sqlval['kiyaku_title'] = $arrData['kiyaku_title'];
-        $sqlval['kiyaku_text'] = $arrData['kiyaku_text'];
-        $sqlval['creator_id'] = $member_id;
-        $sqlval['rank'] = $objQuery->max('rank', 'dtb_kiyaku') + 1;
-        $sqlval['update_date'] = 'CURRENT_TIMESTAMP';
-        $sqlval['create_date'] = 'CURRENT_TIMESTAMP';
-        // INSERTの実行
-        $sqlval['kiyaku_id'] = $objQuery->nextVal('dtb_kiyaku_kiyaku_id');
-        $ret = $objQuery->insert('dtb_kiyaku', $sqlval);
-        return ($ret) ? $sqlval['kiyaku_id'] : FALSE;
+        $sqlval['kiyaku_id'] = $kiyaku_id;
+        $sqlval['creator_id'] = $_SESSION['member_id'];
+        return $objKiyaku->save($sqlval);
     }
 
-    function lfGetKiyakuDataByKiyakuID($kiyaku_id)
-    {
-        $objQuery =& SC_Query_Ex::getSingletonInstance();
-
-        $where = 'kiyaku_id = ?';
-        return $objQuery->select('kiyaku_text, kiyaku_title', 'dtb_kiyaku', $where, array($kiyaku_id));
-    }
-
-    function lfGetKiyakuList()
-    {
-        $objQuery =& SC_Query_Ex::getSingletonInstance();
-
-        $where = 'del_flg <> 1';
-        $objQuery->setOrder('rank DESC');
-        return $objQuery->select('kiyaku_title, kiyaku_text, kiyaku_id', 'dtb_kiyaku', $where);
-    }
-
-    /* DBへの更新 */
-    function lfUpdateClass($arrData, $kiyaku_id)
-    {
-        $objQuery =& SC_Query_Ex::getSingletonInstance();
-        // UPDATEする値を作成する。
-        $sqlval['kiyaku_title'] = $arrData['kiyaku_title'];
-        $sqlval['kiyaku_text'] = $arrData['kiyaku_text'];
-        $sqlval['update_date'] = 'CURRENT_TIMESTAMP';
-        $where = 'kiyaku_id = ?';
-        // UPDATEの実行
-        $ret = $objQuery->update('dtb_kiyaku', $sqlval, $where, array($kiyaku_id));
-        return ($ret) ? $kiyaku_id : FALSE;
-    }
-
     function lfInitParam($mode, &$objFormParam)
     {
         switch ($mode) {
@@ -231,26 +193,17 @@
      * 入力エラーチェック
      *
      * @param string $mode
+     * @param object $objKiyaku
      * @return array
      */
-    function lfCheckError($objFormParam)
+    function lfCheckError($objFormParam, SC_Helper_Kiyaku_Ex &$objKiyaku)
     {
         $arrErr = $objFormParam->checkError();
         $arrForm = $objFormParam->getHashArray();
-        $objQuery =& SC_Query_Ex::getSingletonInstance();
-        
-        $where  = 'del_flg = 0 AND kiyaku_title = ?';
-        $arrVal = array($arrForm['kiyaku_title']);
-        
-        if(!SC_Utils_Ex::isBlank($arrForm['kiyaku_id'])) {
-            $where   .= ' AND kiyaku_id <> ?';
-            $arrVal[] = $arrForm['kiyaku_id'];
-        }
-        
-        $arrRet = $objQuery->select('kiyaku_id, kiyaku_title', 'dtb_kiyaku', $where, $arrVal);
 
+        $isTitleExist = $objKiyaku->isTitleExist($arrForm['kiyaku_title'], $arrForm['kiyaku_id']);
         // 編集中のレコード以外に同じ名称が存在する場合
-        if (!SC_Utils_Ex::isBlank($arrRet)) {
+        if ($isTitleExist) {
             $arrErr['name'] = '※ 既に同じ内容の登録が存在します。<br />';
         }
         return $arrErr;

変更: branches/version-2_12-dev/data/class/pages/entry/LC_Page_Entry_Kiyaku.php
===================================================================
--- branches/version-2_12-dev/data/class/pages/entry/LC_Page_Entry_Kiyaku.php	2013-02-19 08:58:34 UTC (rev 22569)
+++ branches/version-2_12-dev/data/class/pages/entry/LC_Page_Entry_Kiyaku.php	2013-02-19 10:24:42 UTC (rev 22570)
@@ -119,12 +119,9 @@
      */
     function lfGetKiyakuData()
     {
+        $objKiyaku = new SC_Helper_Kiyaku_Ex();
+        $arrKiyaku = $objKiyaku->getList();
 
-        $objQuery   = SC_Query_Ex::getSingletonInstance();
-
-        $objQuery->setOrder('rank DESC');
-        $arrKiyaku  = $objQuery->select('kiyaku_title, kiyaku_text', 'dtb_kiyaku', 'del_flg <> 1');
-
         return $arrKiyaku;
     }
 

変更: branches/version-2_12-dev/data/class/pages/guide/LC_Page_Guide_Kiyaku.php
===================================================================
--- branches/version-2_12-dev/data/class/pages/guide/LC_Page_Guide_Kiyaku.php	2013-02-19 08:58:34 UTC (rev 22569)
+++ branches/version-2_12-dev/data/class/pages/guide/LC_Page_Guide_Kiyaku.php	2013-02-19 10:24:42 UTC (rev 22570)
@@ -91,9 +91,8 @@
      */
     function lfGetKiyaku($index, &$objPage)
     {
-        $objQuery =& SC_Query_Ex::getSingletonInstance();
-        $objQuery->setOrder('rank DESC');
-        $arrKiyaku = $objQuery->select('kiyaku_title, kiyaku_text', 'dtb_kiyaku', 'del_flg <> 1');
+        $objKiyaku = new SC_Helper_Kiyaku_Ex();
+        $arrKiyaku = $objKiyaku->getList();
 
         $number = count($arrKiyaku);
         if ($number > 0) {

追加: branches/version-2_12-dev/data/class_extends/helper_extends/SC_Helper_Kiyaku_Ex.php
===================================================================
--- branches/version-2_12-dev/data/class_extends/helper_extends/SC_Helper_Kiyaku_Ex.php	                        (rev 0)
+++ branches/version-2_12-dev/data/class_extends/helper_extends/SC_Helper_Kiyaku_Ex.php	2013-02-19 10:24:42 UTC (rev 22570)
@@ -0,0 +1,39 @@
+<?php
+/*
+ * This file is part of EC-CUBE
+ *
+ * Copyright(c) 2000-2013 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+// {{{ requires
+require_once CLASS_REALDIR . 'helper/SC_Helper_Kiyaku.php';
+
+/**
+ * 会員規約を管理するヘルパークラス(拡張).
+ *
+ * LC_Helper_Kiyaku をカスタマイズする場合はこのクラスを編集する.
+ *
+ * @package Helper
+ * @author pineray
+ * @version $Id:$
+ */
+class SC_Helper_Kiyaku_Ex extends SC_Helper_Kiyaku
+{
+    //put your code here
+}




Svn-src-all メーリングリストの案内