[Svn-src-all:1220] [version-2_5-dev 20108] #986 リファクタリング

yomoro admin @ mail.ec-cube.net
2011年 2月 7日 (月) 13:27:19 JST


Subversion committed to /home/svn/open 20108
http://svn.ec-cube.net/open_trac/changeset/20108
┌────────────────────────────┐
│更新者 :  yomoro                                       │
│更新日時:  2011-02-07 13:27:19 +0900 (月, 07  2月 2011)│
└────────────────────────────┘

Log:
--------------------------------------------------------
#986 リファクタリング

Changed:                      [U:修正,A:追加,D:削除]
--------------------------------------------------------
U   branches/version-2_5-dev/data/class/pages/frontparts/LC_Page_FrontParts_LoginCheck.php
U   branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Cart.php
U   branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Category.php
U   branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_News.php
U   branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_SearchProducts.php

変更: branches/version-2_5-dev/data/class/pages/frontparts/LC_Page_FrontParts_LoginCheck.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/frontparts/LC_Page_FrontParts_LoginCheck.php	2011-02-07 04:26:03 UTC (rev 20107)
+++ branches/version-2_5-dev/data/class/pages/frontparts/LC_Page_FrontParts_LoginCheck.php	2011-02-07 04:27:19 UTC (rev 20108)
@@ -65,7 +65,10 @@
      */
     function action() {
         // URLチェック
-        $this->lfCheckValidAccess();
+        if ( !SC_Helper_Session_Ex::isValidToken() ) {
+            GC_Utils_Ex::gfPrintLog('invalid access :login_check.php $POST["url"]=' . $_POST['url']);
+            SC_Utils_Ex::sfDispSiteError(PAGE_ERROR);
+        }
         
         // 会員管理クラス
         $objCustomer = new SC_Customer();
@@ -83,12 +86,71 @@
         // モードによって分岐
         switch ($this->getMode()) {
         case 'login':
-            // ログイン
-            $this->lfLogin($objCustomer, $objCookie);
+            // --- ログイン
+            
+            // 入力値のエラーチェック
+            $this->objFormParam->toLower('login_email');
+            $arrErr = $this->objFormParam->checkError();
+            
+            // エラーの場合はエラー画面に遷移
+            if (count($arrErr) > 0) {
+                SC_Utils_Ex::sfDispSiteError(TEMP_LOGIN_ERROR);
+            }
+            
+            // 入力チェック後の値を取得
+            $arrForm = $this->objFormParam->getHashArray();
+            
+            // クッキー保存判定
+            if ($arrForm['login_memory'] == '1' && $arrForm['login_email'] != '') {
+                $objCookie->setCookie('login_email', $arrForm['login_email']);
+            } else {
+                $objCookie->setCookie('login_email', '');
+            }
+            
+            // 遷移先の制御
+            if (count($arrErr) == 0) {
+                // ログイン処理
+                if ($objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['login_email'], true)) {
+                    // --- ログインに成功した場合
+                    SC_Response_Ex::sendRedirect(HTTP_URL);
+                    exit;
+                } else {
+                    // --- ログインに失敗した場合
+                    $arrForm['login_email'] = strtolower($arrForm['login_email']);
+                    $objQuery = SC_Query::getSingletonInstance();
+                    $where = '(email = ? OR email_mobile = ?) AND status = 1 AND del_flg = 0';
+                    $ret = $objQuery->count("dtb_customer", $where, array($arrForm['login_email'], $arrForm['login_email']));
+                    // ログインエラー表示
+                    if($ret > 0) {
+                        SC_Utils_Ex::sfDispSiteError(TEMP_LOGIN_ERROR);
+                    } else {
+                        SC_Utils_Ex::sfDispSiteError(SITE_LOGIN_ERROR);
+                    }
+                }
+            } else {
+                // 入力エラーの場合、元のアドレスに戻す。
+                // FIXME $_POST['url'] には、URL ではなく、url-path が渡るもよう。HTTPS 利用に関わる問題も考えられるので、URL が渡るように改善した方が良いように感じる。
+                SC_Response_Ex::sendRedirect($_POST['url']);
+                exit;
+            }
+            
             break;
         case 'logout':
-            // ログアウト
-            $this->lfLogout($objCustomer);
+            // --- ログアウト
+            
+            // ログイン情報の解放
+            $objCustomer->EndSession();
+            // 画面遷移の制御
+            $mypage_url_search = strpos('.'.$_POST['url'], 'mypage');
+            if ($mypage_url_search == 2) {
+                // マイページログイン中はログイン画面へ移行
+                SC_Response_Ex::sendRedirectFromUrlPath('mypage/login.php');
+            } else {
+                // 上記以外の場合、トップへ遷移
+                SC_Response_Ex::sendRedirect(HTTP_URL);
+            }
+            exit;
+            
             break;
         default:
             break;
@@ -106,21 +168,6 @@
     }
 
     /**
-     * 正常なアクセスかチェックする.
-     *
-     * @return void
-     */
-    function lfCheckValidAccess() {
-        
-        // 不正なURLがPOSTされた場合はエラー表示
-        if (!SC_Helper_Session_Ex::isValidToken()) {
-            GC_Utils_Ex::gfPrintLog('invalid access :login_check.php $POST["url"]=' . $_POST['url']);
-            SC_Utils_Ex::sfDispSiteError(PAGE_ERROR);
-        }
-        
-    }
-
-    /**
      * パラメータ情報の初期化.
      *
      * @param SC_FormParam $objFormParam パラメータ管理クラス
@@ -150,83 +197,5 @@
         return $arrRequest;
     }
 
-    /**
-     * ログイン.
-     *
-     * @param SC_Customer $objCustomer 会員管理クラス
-     * @param SC_Cookie $objCookie クッキー管理クラス
-     * @return void
-     */
-    function lfLogin($objCustomer, $objCookie) {
-        // 入力値のエラーチェック
-        $this->objFormParam->toLower('login_email');
-        $arrErr = $this->objFormParam->checkError();
-        
-        // エラーの場合はエラー画面に遷移
-        if (count($arrErr) > 0) {
-            SC_Utils_Ex::sfDispSiteError(TEMP_LOGIN_ERROR);
-        }
-        
-        // 入力チェック後の値を取得
-        $arrForm = $this->objFormParam->getHashArray();
-        
-        // クッキー保存判定
-        if ($arrForm['login_memory'] == '1' && $arrForm['login_email'] != '') {
-            $objCookie->setCookie('login_email', $arrForm['login_email']);
-        } else {
-            $objCookie->setCookie('login_email', '');
-        }
-        
-        // 遷移先の制御
-        if (count($arrErr) == 0) {
-            // ログイン処理
-            if ($objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['login_email'], true)) {
-                // --- ログインに成功した場合
-                SC_Response_Ex::sendRedirect(HTTP_URL);
-                exit;
-            } else {
-                // --- ログインに失敗した場合
-                $arrForm['login_email'] = strtolower($arrForm['login_email']);
-                $objQuery = SC_Query::getSingletonInstance();
-                $where = '(email = ? OR email_mobile = ?) AND status = 1 AND del_flg = 0';
-                $ret = $objQuery->count("dtb_customer", $where, array($arrForm['login_email'], $arrForm['login_email']));
-                // ログインエラー表示
-                if($ret > 0) {
-                    SC_Utils_Ex::sfDispSiteError(TEMP_LOGIN_ERROR);
-                } else {
-                    SC_Utils_Ex::sfDispSiteError(SITE_LOGIN_ERROR);
-                }
-            }
-        } else {
-            // 入力エラーの場合、元のアドレスに戻す。
-            // FIXME $_POST['url'] には、URL ではなく、url-path が渡るもよう。HTTPS 利用に関わる問題も考えられるので、URL が渡るように改善した方が良いように感じる。
-            SC_Response_Ex::sendRedirect($_POST['url']);
-            exit;
-        }
-    }
-
-    /**
-     * ログアウト.
-     *
-     * @param SC_Customer $objCustomer 会員管理クラス
-     * @return void
-     */
-    function lfLogout($objCustomer) {
-        // ログイン情報の解放
-        $objCustomer->EndSession();
-        
-        // 画面遷移の制御
-        $mypage_url_search = strpos('.'.$_POST['url'], 'mypage');
-        if ($mypage_url_search == 2) {
-            // マイページログイン中はログイン画面へ移行
-            SC_Response_Ex::sendRedirectFromUrlPath('mypage/login.php');
-        } else {
-            // 上記以外の場合、トップへ遷移
-            SC_Response_Ex::sendRedirect(HTTP_URL);
-        }
-        
-        exit;
-    }
-
 }
 ?>

変更: branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Cart.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Cart.php	2011-02-07 04:26:03 UTC (rev 20107)
+++ branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Cart.php	2011-02-07 04:27:19 UTC (rev 20108)
@@ -84,7 +84,7 @@
      * @param SC_SiteInfo $objSiteInfo サイト情報クラス
      * @return array $arrCartList カートデータ配列
      */
-    function lfGetCartData($objCart, $objSiteInfo) {
+    function lfGetCartData(&$objCart, &$objSiteInfo) {
         $arrCartKeys = $objCart->getKeys();
         foreach ($arrCartKeys as $cart_key) {
             // カート情報を取得

変更: branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Category.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Category.php	2011-02-07 04:26:03 UTC (rev 20107)
+++ branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Category.php	2011-02-07 04:27:19 UTC (rev 20108)
@@ -63,16 +63,17 @@
      */
     function action() {
         // モバイル判定
-        if (SC_Display::detectDevice() === true) {
-            // --- モバイルの場合
-            // メインカテゴリーの取得
-            $this->arrCat = $this->lfGetMainCat(true);
-        } else {
-            // --- PCの場合
-            // 選択中のカテゴリID
-            $this->tpl_category_id = $this->lfGetSelectedCategoryId();
-            // カテゴリツリーの取得
-            $this->arrTree = $this->lfGetCatTree($this->tpl_category_id, true);
+        switch ( SC_Display::detectDevice() ) {
+            case DEVICE_TYPE_MOBILE:
+                // メインカテゴリーの取得
+                $this->arrCat = $this->lfGetMainCat(true);
+                break;
+            default:
+                // 選択中のカテゴリID
+                $this->tpl_category_id = $this->lfGetSelectedCategoryId($_GET);
+                // カテゴリツリーの取得
+                $this->arrTree = $this->lfGetCatTree($this->tpl_category_id, true);
+                break;
         }
     }
 
@@ -88,18 +89,19 @@
     /**
      * 選択中のカテゴリIDを取得する.
      *
+     * @param array $arrRequest リクエスト配列
      * @return array $arrCategoryId 選択中のカテゴリID
      */
-    function lfGetSelectedCategoryId() {
+    function lfGetSelectedCategoryId($arrRequest) {
             // 商品ID取得
         $product_id = '';
-        if ( isset($_GET['product_id']) && $_GET['product_id'] != '' && is_numeric($_GET['product_id']) ) {
-            $product_id = $_GET['product_id'];
+        if ( isset($arrRequest['product_id']) && $arrRequest['product_id'] != '' && is_numeric($arrRequest['product_id']) ) {
+            $product_id = $arrRequest['product_id'];
         }
         // カテゴリID取得
         $category_id = '';
-        if ( isset($_GET['category_id']) && $_GET['category_id'] != '' && is_numeric($_GET['category_id']) ) {
-            $category_id = $_GET['category_id'];
+        if ( isset($arrRequest['category_id']) && $arrRequest['category_id'] != '' && is_numeric($arrRequest['category_id']) ) {
+            $category_id = $arrRequest['category_id'];
         }
         // 選択中のカテゴリIDを判定する
         $objDb = new SC_Helper_DB_Ex();

変更: branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_News.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_News.php	2011-02-07 04:26:03 UTC (rev 20107)
+++ branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_News.php	2011-02-07 04:27:19 UTC (rev 20108)
@@ -80,7 +80,7 @@
      * @return array $arrNewsList 新着情報の配列を返す
      */
     function lfGetNews(){
-        $objQuery = new SC_Query();
+        $objQuery = SC_Query::getSingletonInstance();
         $sql = '';
         $sql .= " SELECT ";
         $sql .= "   *, ";

変更: branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_SearchProducts.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_SearchProducts.php	2011-02-07 04:26:03 UTC (rev 20107)
+++ branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_SearchProducts.php	2011-02-07 04:27:19 UTC (rev 20108)
@@ -62,12 +62,18 @@
      * @return void
      */
     function action() {
+        // 商品ID取得
+        $product_id = $this -> lfGetProductId();
+        // カテゴリID取得
+        $category_id = $this -> lfGetCategoryId();
+        // メーカーID取得
+        $maker_id = $this -> lfGetMakerId();
         // 選択中のカテゴリIDを判定する
-        $this->category_id = $this->lfGetSelectedCategoryId();
+        $this->category_id = $this->lfGetSelectedCategoryId($product_id, $category_id);
         // カテゴリ検索用選択リスト
         $this->arrCatList = $this->lfGetCategoryList();
         // 選択中のメーカーIDを判定する
-        $this->maker_id = $this->lfGetSelectedMakerId();
+        $this->maker_id = $this->lfGetSelectedMakerId($product_id, $maker_id);
         // メーカー検索用選択リスト
         $this->arrMakerList = $this->lfGetMakerList();
     }
@@ -80,23 +86,52 @@
     function destroy() {
         parent::destroy();
     }
-
+    
     /**
+     * 商品IDを取得する.
+     * 
+     * @return string $product_id 商品ID
+     */
+    function lfGetProductId() {
+        $product_id = '';
+        if ( isset($_GET['product_id']) && $_GET['product_id'] != '' && is_numeric($_GET['product_id']) ) {
+            $product_id = $_GET['product_id'];
+        }
+        return $product_id;
+    }
+    
+    /**
+     * カテゴリIDを取得する.
+     * 
+     * @return string $category_id カテゴリID
+     */
+    function lfGetCategoryId() {
+        $category_id = '';
+        if ( isset($_GET['category_id']) && $_GET['category_id'] != '' && is_numeric($_GET['category_id']) ) {
+            $category_id = $_GET['category_id'];
+        }
+        return $category_id;
+    }
+    
+    /**
+     * メーカーIDを取得する.
+     * 
+     * @return string $maker_id メーカーID
+     */
+    function lfGetCategoryId() {
+        $maker_id = '';
+        if ( isset($_GET['maker_id']) && $_GET['maker_id'] != '' && is_numeric($_GET['maker_id']) ) {
+            $maker_id = $_GET['maker_id'];
+        }
+        return $maker_id;
+    }
+    
+    /**
      * 選択中のカテゴリIDを取得する
      *
      * @return array $arrCategoryId 選択中のカテゴリID
      */
-    function lfGetSelectedCategoryId() {
-        // 商品ID取得
-        if ( !isset($_GET['product_id']) || $_GET['product_id'] == '' || !is_numeric($_GET['product_id']) ) {
-            return array();
-        }
-        $product_id = $_GET['product_id'];
-        // カテゴリID取得
-        if ( !isset($_GET['category_id']) || $_GET['category_id'] == '' || !is_numeric($_GET['category_id']) ) {
-            return array();
-        }
-        $category_id = $_GET['category_id'];
+    function lfGetSelectedCategoryId($product_id, $category_id) {
         // 選択中のカテゴリIDを判定する
         $objDb = new SC_Helper_DB_Ex();
         $arrCategoryId = $objDb->sfGetCategoryId($product_id, $category_id);
@@ -108,17 +143,7 @@
      *
      * @return array $arrMakerId 選択中のメーカーID
      */
-    function lfGetSelectedMakerId() {
-        // 商品ID取得
-        if ( !isset($_GET['product_id']) || $_GET['product_id'] == '' || !is_numeric($_GET['product_id']) ) {
-            return array();
-        }
-        $product_id = $_GET['product_id'];
-        // メーカーID取得
-        if ( !isset($_GET['maker_id']) || $_GET['maker_id'] == '' || !is_numeric($_GET['maker_id']) ) {
-            return array();
-        }
-        $maker_id = $_GET['maker_id'];
+    function lfGetSelectedMakerId($product_id, $maker_id) {
         // 選択中のメーカーIDを判定する
         $objDb = new SC_Helper_DB_Ex();
         $arrMakerId = $objDb->sfGetMakerId($product_id, $maker_id);




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