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