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

yomoro admin @ mail.ec-cube.net
2011年 2月 3日 (木) 18:40:06 JST


Subversion committed to /home/svn/open 20076
http://svn.ec-cube.net/open_trac/changeset/20076
┌────────────────────────────┐
│更新者 :  yomoro                                       │
│更新日時:  2011-02-03 18:40:05 +0900 (木, 03  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.php
U   branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Best5.php
U   branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Calendar.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_Login.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-03 09:37:07 UTC (rev 20075)
+++ branches/version-2_5-dev/data/class/pages/frontparts/LC_Page_FrontParts_LoginCheck.php	2011-02-03 09:40:05 UTC (rev 20076)
@@ -64,81 +64,36 @@
      * @return void
      */
     function action() {
+        // URLチェック
+        $this->lfCheckValidAccess();
+        
+        // 会員管理クラス
         $objCustomer = new SC_Customer();
-        // 不正な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);
-        }
         // クッキー管理クラス
         $objCookie = new SC_Cookie(COOKIE_EXPIRE);
         // パラメータ管理クラス
         $this->objFormParam = new SC_FormParam();
+        
         // パラメータ情報の初期化
-        $this->lfInitParam();
-        //パスワード・Eメールにある空白をトリム
-        $_POST["login_email"] = preg_replace('/^[  \r\n]*(.*?)[  \r\n]*$/u', '$1', $_POST["login_email"]);
-        $_POST["login_pass"] = trim($_POST["login_pass"]); //認証用
-        $_POST["login_pass1"] = $_POST["login_pass"];      //最小桁数比較用
-        $_POST["login_pass2"] = $_POST["login_pass"];      //最大桁数比較用
-        // POST値の取得
-        $this->objFormParam->setParam($_POST);
-
-        switch($this->getMode()) {
+        $this->lfInitParam($this->objFormParam);
+        
+        // リクエスト値をフォームにセット
+        $objFormParam->setParam($this->lfConvertParam($_POST));
+        
+        // モードによって分岐
+        switch ($this->getMode()) {
         case 'login':
-            $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', $_POST['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 = new SC_Query;
-                    $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;
-            }
+            // ログイン
+            $this->lfLogin($objCustomer, $objCookie);
             break;
         case 'logout':
-            // ログイン情報の解放
-            $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;
+            // ログアウト
+            $this->lfLogout($objCustomer);
             break;
+        default:
+            break;
         }
+        
     }
 
     /**
@@ -150,13 +105,128 @@
         parent::destroy();
     }
 
-    /* パラメータ情報の初期化 */
-    function lfInitParam() {
-        $this->objFormParam->addParam("記憶する", "login_memory", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
-        $this->objFormParam->addParam("メールアドレス", "login_email", MTEXT_LEN, "a", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "EMAIL_CHECK", "NO_SPTAB" ,"EMAIL_CHAR_CHECK"));
-        $this->objFormParam->addParam("パスワード", "login_pass", PASSWORD_LEN1, "", array("EXIST_CHECK"));
-        $this->objFormParam->addParam("パスワード", "login_pass1", PASSWORD_LEN1, "", array("EXIST_CHECK", "MIN_LENGTH_CHECK"));
-        $this->objFormParam->addParam("パスワード", "login_pass2", PASSWORD_LEN2, "", array("EXIST_CHECK", "MAX_LENGTH_CHECK"));
+    /**
+     * 正常なアクセスかチェックする.
+     *
+     * @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 パラメータ管理クラス
+     * @return SC_FormParam $objFormParam 初期化したパラメータ管理クラスを返す
+     */
+    function lfInitParam(&$objFormParam) {
+        $objFormParam->addParam('記憶する', 'login_memory', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'));
+        $objFormParam->addParam('メールアドレス', 'login_email', MTEXT_LEN, 'a', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'EMAIL_CHECK', 'NO_SPTAB' ,'EMAIL_CHAR_CHECK'));
+        $objFormParam->addParam('パスワード', 'login_pass', PASSWORD_LEN1, '', array('EXIST_CHECK'));
+        $objFormParam->addParam('パスワード', 'login_pass1', PASSWORD_LEN1, '', array('EXIST_CHECK', 'MIN_LENGTH_CHECK'));
+        $objFormParam->addParam('パスワード', 'login_pass2', PASSWORD_LEN2, '', array('EXIST_CHECK', 'MAX_LENGTH_CHECK'));
+        return $objFormParam;
+    }
+
+    /**
+     * リクエスト値の整形.
+     *
+     * @param array $arrRequest リクエスト
+     * @return array $arrRequest 整形したリクエストを返す
+     */
+    function lfConvertParam($arrRequest) {
+        // パスワード・Eメールにある空白をトリム
+        $arrRequest['login_email'] = preg_replace('/^[  \r\n]*(.*?)[  \r\n]*$/u', '$1', $arrRequest['login_email']);
+        $arrRequest['login_pass'] = trim($arrRequest['login_pass']); //認証用
+        $arrRequest['login_pass1'] = $arrRequest['login_pass'];      //最小桁数比較用
+        $arrRequest['login_pass2'] = $arrRequest['login_pass'];      //最大桁数比較用
+        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.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc.php	2011-02-03 09:37:07 UTC (rev 20075)
+++ branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc.php	2011-02-03 09:40:05 UTC (rev 20076)
@@ -33,7 +33,11 @@
  */
 class LC_Page_FrontParts_Bloc extends LC_Page {
 
-    // TODO
+    /**
+     * Page を初期化する.
+     *
+     * @return void
+     */
     function init() {
         // 開始時刻を設定する。
         $this->timeStart = SC_Utils_Ex::sfMicrotimeFloat();

変更: branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Best5.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Best5.php	2011-02-03 09:37:07 UTC (rev 20075)
+++ branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Best5.php	2011-02-03 09:40:05 UTC (rev 20076)
@@ -80,20 +80,24 @@
         parent::destroy();
     }
 
-    //おすすめ商品検索
+    /**
+     * おすすめ商品検索.
+     *
+     * @return array $arrBestProducts 検索結果配列
+     */
     function lfGetRanking(){
-        $objQuery = new SC_Query();
+        $objQuery = SC_Query::getSingletonInstance();
         // FIXME SC_Product クラスを使用した実装
-        $col = "DISTINCT A.*, name, price02_min, price01_min, main_list_image ";
-        $from = "dtb_best_products AS A INNER JOIN vw_products_allclass AS allcls using(product_id)";
-        $where = "allcls.del_flg = 0 AND allcls.status = 1";
+        $col = 'DISTINCT A.*, name, price02_min, price01_min, main_list_image ';
+        $from = 'dtb_best_products AS A INNER JOIN vw_products_allclass AS allcls using(product_id)';
+        $where = 'allcls.del_flg = 0 AND allcls.status = 1';
         
         // 在庫無し商品の非表示
         if (NOSTOCK_HIDDEN === true) {
             $where .= ' AND (allcls.stock_max >= 1 OR allcls.stock_unlimited_max = 1)';
         }
         
-        $order = "rank";
+        $order = 'rank';
         $objQuery->setOrder($order);
         $objQuery->setLimit(RECOMMEND_NUM);
 

変更: branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Calendar.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Calendar.php	2011-02-03 09:37:07 UTC (rev 20075)
+++ branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Calendar.php	2011-02-03 09:40:05 UTC (rev 20076)
@@ -79,7 +79,7 @@
      * @return void
      */
     function mobileInit() {
-         $this->tpl_mainpage = MOBILE_TEMPLATE_REALDIR . "frontparts/"
+         $this->tpl_mainpage = MOBILE_TEMPLATE_REALDIR . 'frontparts/'
             . BLOC_DIR . 'best5.tpl';
     }
 
@@ -101,7 +101,12 @@
         parent::destroy();
     }
 
-    // カレンダー情報取得
+    /**
+     * カレンダー情報取得.
+     *
+     * @param integer $disp_month 表示する月数
+     * @return array $arrCalendar カレンダー情報の配列を返す
+     */
     function lfGetCalendar($disp_month = 1){
 
         for ($j = 0; $j <= $disp_month-1; ++$j) {
@@ -112,22 +117,22 @@
                 $year = $year + $month%12;
             }
 
-            $Month = new Calendar_Month_Weekdays($year, $month, 0);
-            $Month->build();
+            $objMonth = new Calendar_Month_Weekdays($year, $month, 0);
+            $objMonth->build();
             $i = 0;
-            while ($Day = $Month->fetch()) {
-                if ($month == $Day->month) {
+            while ($objDay = $objMonth->fetch()) {
+                if ($month == $objDay->month) {
                     $arrCalendar[$j][$i]['in_month'] = true;
                 } else {
                     $arrCalendar[$j][$i]['in_month'] = false;
                 }
-                $arrCalendar[$j][$i]['first'] = $Day->first;
-                $arrCalendar[$j][$i]['last'] = $Day->last;
-                $arrCalendar[$j][$i]['empty'] = $Day->empty;
+                $arrCalendar[$j][$i]['first'] = $objDay->first;
+                $arrCalendar[$j][$i]['last'] = $objDay->last;
+                $arrCalendar[$j][$i]['empty'] = $objDay->empty;
                 $arrCalendar[$j][$i]['year'] = $year;
                 $arrCalendar[$j][$i]['month'] = $month;
-                $arrCalendar[$j][$i]['day'] = $Day->day;
-                if ($this->lfCheckHoliday($year, $month, $Day->day)) {
+                $arrCalendar[$j][$i]['day'] = $objDay->day;
+                if ($this->lfCheckHoliday($year, $month, $objDay->day)) {
                     $arrCalendar[$j][$i]['holiday'] = true;
                 } else {
                     $arrCalendar[$j][$i]['holiday'] = false;
@@ -139,27 +144,42 @@
         return $arrCalendar;
     }
 
-    // 休日取得
+    /**
+     * 休日取得.
+     *
+     * @return array $arrHoliday 休日情報の配列を返す
+     */
     function lfGetHoliday() {
-        $objQuery = new SC_Query();
-        $objQuery->setOrder("rank DESC");
+        $objQuery = SC_Query::getSingletonInstance();
+        $objQuery->setOrder('rank DESC');
 
-        $where = "del_flg <> 1";
-        $arrRet = $objQuery->select("month, day", "dtb_holiday", $where);
+        $where = 'del_flg <> 1';
+        $arrRet = $objQuery->select('month, day', 'dtb_holiday', $where);
         foreach ($arrRet AS $key=>$val) {
             $arrHoliday[$val['month']][] = $val['day'];
         }
         return $arrHoliday;
     }
 
-    // 定休日取得
+    /**
+     * 定休日取得.
+     *
+     * @return array $arrRegularHoliday 定休日情報の配列を返す
+     */
     function lfGetRegularHoliday() {
-        $objSIteInfo = new SC_SiteInfo();
-        $arrRegularHoliday = explode('|', $objSIteInfo->data['regular_holiday_ids']);
+        $objSiteInfo = new SC_SiteInfo();
+        $arrRegularHoliday = explode('|', $objSiteInfo->data['regular_holiday_ids']);
         return $arrRegularHoliday;
     }
 
-    // 休日チェック
+    /**
+     * 休日チェック取得.
+     *
+     * @param integer $year 年
+     * @param integer $month 月
+     * @param integer $day 日
+     * @return boolean 休日の場合trueを返す
+     */
     function lfCheckHoliday($year, $month, $day) {
         if (!empty($this->arrHoliday[$month])) {
             if (in_array($day, $this->arrHoliday[$month])) {
@@ -167,8 +187,8 @@
             }
         }
         if (!empty($this->arrRegularHoliday)) {
-            $w = date('w', mktime(0,0,0 ,$month, $day, $year));
-            if (in_array($w, $this->arrRegularHoliday)) {
+            $day = date('w', mktime(0,0,0 ,$month, $day, $year));
+            if (in_array($day, $this->arrRegularHoliday)) {
                 return true;
             }
         }

変更: 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-03 09:37:07 UTC (rev 20075)
+++ branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Cart.php	2011-02-03 09:40:05 UTC (rev 20076)
@@ -64,51 +64,60 @@
     function action() {
         $objCart = new SC_CartSession();
         $objSiteInfo = new SC_SiteInfo;
+        $this->isMultiple = $objCart->isMultiple();
+        $this->arrCartList = $this->lfGetCartData($objCart, $objSiteInfo);
+    }
 
-        $cartKeys = $objCart->getKeys();
-        foreach ($cartKeys as $cartKey) {
+    /**
+     * デストラクタ.
+     *
+     * @return void
+     */
+    function destroy() {
+        parent::destroy();
+    }
 
+    /**
+     * カートの情報を取得する
+     *
+     * @param SC_CartSession $objCart カートセッション管理クラス
+     * @param SC_SiteInfo $objSiteInfo サイト情報クラス
+     * @return array $arrCartList カートデータ配列
+     */
+    function lfGetCartData($objCart, $objSiteInfo) {
+        $arrCartKeys = $objCart->getKeys();
+        foreach ($arrCartKeys as $cart_key) {
             // カート情報を取得
-            $arrCartList = $objCart->getCartList($cartKey);
-
+            $arrCartList = $objCart->getCartList($cart_key);
             // カート内の商品ID一覧を取得
-            $arrAllProductID = $objCart->getAllProductID($cartKey);
+            $arrAllProductID = $objCart->getAllProductID($cart_key);
             // 商品が1つ以上入っている場合には商品名称を取得
             if (count($arrCartList) > 0){
-
+                
                 foreach($arrCartList['productsClass'] as $key => $val){
                     $arrCartList[$key]['product_name'] = $val['name'];
                 }
             }
             // 購入金額合計
-            $ProductsTotal += $objCart->getAllProductsTotal($cartKey);
+            $products_total += $objCart->getAllProductsTotal($cart_key);
             // 合計数量
-            $TotalQuantity += $objCart->getTotalQuantity($cartKey);
-
+            $total_quantity += $objCart->getTotalQuantity($cart_key);
         }
-
+        
         // 店舗情報の取得
         $arrInfo = $objSiteInfo->data;
-
+        
         // 送料無料までの金額
-        $arrCartList[0]['ProductsTotal'] = $ProductsTotal;
-        $arrCartList[0]['TotalQuantity'] = $TotalQuantity;
-
-        $deliv_free = $arrInfo['free_rule'] - $ProductsTotal;
+        $arrCartList[0]['ProductsTotal'] = $products_total;
+        $arrCartList[0]['TotalQuantity'] = $total_quantity;
+        
+        $deliv_free = $arrInfo['free_rule'] - $products_total;
         $arrCartList[0]['free_rule'] = $arrInfo['free_rule'];
         $arrCartList[0]['deliv_free'] = $deliv_free;
-
-        $this->isMultiple = $objCart->isMultiple();
-        $this->arrCartList = $arrCartList;
+        
+        return $arrCartList;
+        
     }
 
-    /**
-     * デストラクタ.
-     *
-     * @return void
-     */
-    function destroy() {
-        parent::destroy();
-    }
 }
 ?>

変更: 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-03 09:37:07 UTC (rev 20075)
+++ branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Category.php	2011-02-03 09:40:05 UTC (rev 20076)
@@ -62,17 +62,17 @@
      * @return void
      */
     function action() {
-        if(Net_UserAgent_Mobile::isMobile() === true) {
-            $this->lfGetMainCat(true, $this);
+        // モバイル判定
+        if (SC_Display::detectDevice() === true) {
+            // --- モバイルの場合
+            // メインカテゴリーの取得
+            $this->arrCat = $this->lfGetMainCat(true);
         } else {
-            $objDb = new SC_Helper_DB_Ex();
-
-            // 選択中のカテゴリIDを判定する
-            $arrCategory_id = $objDb->sfGetCategoryId($_GET['product_id'], $_GET['category_id']);
-
+            // --- PCの場合
             // 選択中のカテゴリID
-            $this->tpl_category_id = empty($arrCategory_id) ? array(0) : $arrCategory_id;;
-            $this->lfGetCatTree($this->tpl_category_id, true, $this);
+            $this->tpl_category_id = $this->lfGetSelectedCategoryId();
+            // カテゴリツリーの取得
+            $this->arrTree = $this->lfGetCatTree($this->tpl_category_id, true);
         }
     }
 
@@ -85,30 +85,72 @@
         parent::destroy();
     }
 
-    // カテゴリツリーの取得
-    function lfGetCatTree($arrParent_category_id, $count_check = false) {
+    /**
+     * 選択中のカテゴリIDを取得する.
+     *
+     * @return array $arrCategoryId 選択中のカテゴリID
+     */
+    function lfGetSelectedCategoryId() {
+        // 商品ID取得
+        if ( !isset($_GET['product_id']) || $_GET['product_id'] == '' || !is_numeric($_GET['product_id']) ) {
+            return array(0);
+        }
+        $product_id = $_GET['product_id'];
+        // カテゴリID取得
+        if ( !isset($_GET['category_id']) || $_GET['category_id'] == '' || !is_numeric($_GET['category_id']) ) {
+            return array(0);
+        }
+        $category_id = $_GET['category_id'];
+        // 選択中のカテゴリIDを判定する
+        $objDb = new SC_Helper_DB_Ex();
+        $arrCategoryId = $objDb->sfGetCategoryId($product_id, $category_id);
+        if (empty($arrCategoryId)) {
+            $arrCategoryId = array(0);
+        }
+        return $arrCategoryId;
+    }
+
+    /**
+     * カテゴリツリーの取得.
+     *
+     * @param array $arrParentCategoryId 親カテゴリの配列
+     * @param boolean $count_check 登録商品数をチェックする場合はtrue
+     * @return array $arrRet カテゴリーツリーの配列を返す
+     */
+    function lfGetCatTree($arrParentCategoryId, $count_check = false) {
         $objQuery = new SC_Query();
         $objDb = new SC_Helper_DB_Ex();
-        $col = "*";
-        $from = "dtb_category left join dtb_category_total_count using (category_id)";
+        $col = '*';
+        $from = 'dtb_category left join dtb_category_total_count using (category_id)';
         // 登録商品数のチェック
         if($count_check) {
-            $where = "del_flg = 0 AND product_count > 0";
+            $where = 'del_flg = 0 AND product_count > 0';
         } else {
-            $where = "del_flg = 0";
+            $where = 'del_flg = 0';
         }
-        $objQuery->setOption("ORDER BY rank DESC");
+        $objQuery->setOption('ORDER BY rank DESC');
         $arrRet = $objQuery->select($col, $from, $where);
-
-        foreach ($arrParent_category_id as $category_id) {
-            $arrParentID = $objDb->sfGetParents('dtb_category', 'parent_category_id', 'category_id', $category_id);
-            $arrBrothersID = SC_Utils_Ex::sfGetBrothersArray($arrRet, 'parent_category_id', 'category_id', $arrParentID);
-            $arrChildrenID = SC_Utils_Ex::sfGetUnderChildrenArray($arrRet, 'parent_category_id', 'category_id', $category_id);
-
+        foreach ($arrParentCategoryId as $category_id) {
+            $arrParentID = $objDb->sfGetParents(
+                'dtb_category',
+                'parent_category_id',
+                'category_id',
+                $category_id
+            );
+            $arrBrothersID = SC_Utils_Ex::sfGetBrothersArray(
+                $arrRet,
+                'parent_category_id',
+                'category_id',
+                $arrParentID
+            );
+            $arrChildrenID = SC_Utils_Ex::sfGetUnderChildrenArray(
+                $arrRet,
+                'parent_category_id',
+                'category_id',
+                $category_id
+            );
             $this->root_parent_id[] = $arrParentID[0];
-
             $arrDispID = array_merge($arrBrothersID, $arrChildrenID);
-
             foreach($arrRet as $key => $array) {
                 foreach($arrDispID as $val) {
                     if($array['category_id'] == $val) {
@@ -118,39 +160,44 @@
                 }
             }
         }
-
-        $this->arrTree = $arrRet;
+        return $arrRet;
     }
 
-    // メインカテゴリーの取得
-    function lfGetMainCat($count_check = false, &$objSubPage) {
+    /**
+     * メインカテゴリーの取得.
+     *
+     * @param boolean $count_check 登録商品数をチェックする場合はtrue
+     * @return array $arrMainCat メインカテゴリーの配列を返す
+     */
+    function lfGetMainCat($count_check = false) {
         $objQuery = new SC_Query();
-        $col = "*";
-        $from = "dtb_category left join dtb_category_total_count using (category_id)";
+        $col = '*';
+        $from = 'dtb_category left join dtb_category_total_count using (category_id)';
         // メインカテゴリーとその直下のカテゴリーを取得する。
         $where = 'level <= 2 AND del_flg = 0';
         // 登録商品数のチェック
         if($count_check) {
-            $where .= " AND product_count > 0";
+            $where .= ' AND product_count > 0';
         }
-        $objQuery->setOption("ORDER BY rank DESC");
+        $objQuery->setOption('ORDER BY rank DESC');
         $arrRet = $objQuery->select($col, $from, $where);
-
         // メインカテゴリーを抽出する。
         $arrMainCat = array();
         foreach ($arrRet as $cat) {
             if ($cat['level'] != 1) {
                 continue;
             }
-
             // 子カテゴリーを持つかどうかを調べる。
-            $arrChildrenID = SC_Utils_Ex::sfGetUnderChildrenArray($arrRet, 'parent_category_id', 'category_id', $cat['category_id']);
+            $arrChildrenID = SC_Utils_Ex::sfGetUnderChildrenArray(
+                $arrRet,
+                'parent_category_id',
+                'category_id',
+                $cat['category_id']
+            );
             $cat['has_children'] = count($arrChildrenID) > 0;
             $arrMainCat[] = $cat;
         }
-
-        $objSubPage->arrCat = $arrMainCat;
-        return $objSubPage;
+        return $arrMainCat;
     }
 }
 ?>

変更: branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Login.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Login.php	2011-02-03 09:37:07 UTC (rev 20075)
+++ branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Login.php	2011-02-03 09:40:05 UTC (rev 20076)
@@ -78,12 +78,11 @@
         } else {
             // クッキー判定
             $this->tpl_login_email = $objCookie->getCookie('login_email');
-            if($this->tpl_login_email != "") {
-                $this->tpl_login_memory = "1";
+            if($this->tpl_login_email != '') {
+                $this->tpl_login_memory = '1';
             }
-
             // POSTされてきたIDがある場合は優先する。
-            if($_POST['login_email'] != "") {
+            if( isset($_POST['login_email']) && $_POST['login_email'] != '') {
                 $this->tpl_login_email = $_POST['login_email'];
             }
         }
@@ -101,13 +100,19 @@
         parent::destroy();
     }
 
+    /**
+     * lfCheckDisableLogout.
+     *
+     * @return boolean
+     */
     function lfCheckDisableLogout() {
         $masterData = new SC_DB_MasterData_Ex();
-        $arrDISABLE_LOGOUT = $masterData->getMasterData("mtb_disable_logout");
-        $nowpage = $_SERVER['PHP_SELF'];
+        $arrDisableLogout = $masterData->getMasterData('mtb_disable_logout');
+        
+        $current_page = $_SERVER['PHP_SELF'];
 
-        foreach($arrDISABLE_LOGOUT as $val) {
-            if($nowpage == $val) {
+        foreach($arrDisableLogout as $val) {
+            if($current_page == $val) {
                 return true;
             }
          }

変更: 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-03 09:37:07 UTC (rev 20075)
+++ branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_News.php	2011-02-03 09:40:05 UTC (rev 20076)
@@ -74,11 +74,26 @@
         parent::destroy();
     }
 
+    /**
+     * 新着情報を取得する.
+     *
+     * @return array $arrNewsList 新着情報の配列を返す
+     */
     function lfGetNews(){
         $objQuery = new SC_Query();
-        $sql = "SELECT *, cast(news_date as date) as news_date_disp FROM dtb_news WHERE del_flg = '0' ORDER BY rank DESC";
-        $list_data = $objQuery->getAll($sql);
-        return $list_data;
+        $sql = '';
+        $sql .= " SELECT ";
+        $sql .= "   *, ";
+        $sql .= "   cast(news_date as date) as news_date_disp ";
+        $sql .= " FROM ";
+        $sql .= "   dtb_news ";
+        $sql .= " WHERE ";
+        $sql .= "   del_flg = '0' ";
+        $sql .= " ORDER BY ";
+        $sql .= "   rank DESC ";
+        
+        $arrNewsList = $objQuery->getAll($sql);
+        return $arrNewsList;
     }
 }
 ?>

変更: 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-03 09:37:07 UTC (rev 20075)
+++ branches/version-2_5-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_SearchProducts.php	2011-02-03 09:40:05 UTC (rev 20076)
@@ -62,42 +62,105 @@
      * @return void
      */
     function action() {
-        $arrSearch = array();	// 検索項目表示用
-        $objDb = new SC_Helper_DB_Ex();
         // 選択中のカテゴリIDを判定する
-        $this->category_id = $objDb->sfGetCategoryId($_GET['product_id'], $_GET['category_id']);
+        $this->category_id = $this->lfGetSelectedCategoryId();
         // カテゴリ検索用選択リスト
-        $arrRet = $objDb->sfGetCategoryList('', true, ' ');
+        $this->arrCatList = $this->lfGetCategoryList();
+        // 選択中のメーカーIDを判定する
+        $this->maker_id = $this->lfGetSelectedMakerId();
+        // メーカー検索用選択リスト
+        $this->arrMakerList = $this->lfGetMakerList();
+    }
 
-        if(is_array($arrRet)) {
-            // 文字サイズを制限する
-            foreach($arrRet as $key => $val) {
-                $str = SC_Utils_Ex::sfCutString($val, SEARCH_CATEGORY_LEN, false);
-                $arrRet[$key] = preg_replace('/ /', "&nbsp;&nbsp;", $str);
-            }
+    /**
+     * デストラクタ.
+     *
+     * @return void
+     */
+    function destroy() {
+        parent::destroy();
+    }
+
+    /**
+     * 選択中のカテゴリIDを取得する
+     *
+     * @return array $arrCategoryId 選択中のカテゴリID
+     */
+    function lfGetSelectedCategoryId() {
+        // 商品ID取得
+        if ( !isset($_GET['product_id']) || $_GET['product_id'] == '' || !is_numeric($_GET['product_id']) ) {
+            return array();
         }
-        $this->arrCatList = $arrRet;
+        $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'];
+        // 選択中のカテゴリIDを判定する
+        $objDb = new SC_Helper_DB_Ex();
+        $arrCategoryId = $objDb->sfGetCategoryId($product_id, $category_id);
+        return $arrCategoryId;
+    }
 
+    /**
+     * 選択中のメーカーIDを取得する
+     *
+     * @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'];
         // 選択中のメーカーIDを判定する
-        $this->maker_id = $objDb->sfGetMakerId($_GET['product_id'], $_GET['maker_id']);
-        // メーカー検索用選択リスト
-        $arrRet = $objDb->sfGetMakerList('', true);
-        if(is_array($arrRet)) {
+        $objDb = new SC_Helper_DB_Ex();
+        $arrMakerId = $objDb->sfGetMakerId($product_id, $maker_id);
+        return $arrMakerId;
+    }
+
+    /**
+     * カテゴリ検索用選択リストを取得する
+     *
+     * @return array $arrCategoryList カテゴリ検索用選択リスト
+     */
+    function lfGetCategoryList() {
+        $objDb = new SC_Helper_DB_Ex();
+        // カテゴリ検索用選択リスト
+        $arrCategoryList = $objDb->sfGetCategoryList('', true, ' ');
+        if (is_array($arrCategoryList)) {
             // 文字サイズを制限する
-            foreach($arrRet as $key => $val) {
-                $arrRet[$key] = SC_Utils_Ex::sfCutString($val, SEARCH_CATEGORY_LEN);
+            foreach($arrCategoryList as $key => $val) {
+                $truncate_str = SC_Utils_Ex::sfCutString($val, SEARCH_CATEGORY_LEN, false);
+                $arrCategoryList[$key] = preg_replace('/ /', "&nbsp;&nbsp;", $truncate_str);
             }
         }
-        $this->arrMakerList = $arrRet;
+        return $arrCategoryList;
     }
 
     /**
-     * デストラクタ.
+     * メーカー検索用選択リストを取得する
      *
-     * @return void
+     * @return array $arrMakerList メーカー検索用選択リスト
      */
-    function destroy() {
-        parent::destroy();
+    function lfGetMakerList() {
+        $objDb = new SC_Helper_DB_Ex();
+        // メーカー検索用選択リスト
+        $arrMakerList = $objDb->sfGetMakerList('', true);
+        if (is_array($arrMakerList)) {
+            // 文字サイズを制限する
+            foreach($arrMakerList as $key => $val) {
+                $arrMakerList[$key] = SC_Utils_Ex::sfCutString($val, SEARCH_CATEGORY_LEN);
+            }
+        }
+        return $arrMakerList;
     }
+
 }
 ?>




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