[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('/ /', " ", $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('/ /', " ", $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 メーリングリストの案内