Ignore:
Timestamp:
2007/09/28 19:49:43 (15 years ago)
Author:
nanasess
Message:

モバイル対応

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/feature-module-update/data/class/pages/products/LC_Page_Products_List.php

    r15885 r16165  
    181181 
    182182    /** 
     183     * モバイルページを初期化する. 
     184     * 
     185     * @return void 
     186     */ 
     187    function mobileInit() { 
     188        $this->init(); 
     189    } 
     190 
     191    /** 
     192     * Page のプロセス(モバイル). 
     193     * 
     194     * FIXME スパゲッティ... 
     195     * 
     196     * @return void 
     197     */ 
     198    function mobileProcess() { 
     199        $conn = new SC_DBConn(); 
     200        $objDb = new SC_Helper_DB_Ex(); 
     201 
     202        //表示件数の選択 
     203        if(SC_Utils_Ex::sfIsInt($_REQUEST['disp_number'])) { 
     204            $this->disp_number = $_REQUEST['disp_number']; 
     205        } else { 
     206            //最小表示件数を選択 
     207            $this->disp_number = current(array_keys($this->arrPRODUCTLISTMAX)); 
     208        } 
     209 
     210        //表示順序の保存 
     211        $this->orderby = $_REQUEST['orderby']; 
     212 
     213        // GETのカテゴリIDを元に正しいカテゴリIDを取得する。 
     214        $category_id = $objDb->sfGetCategoryId("", $_GET['category_id']); 
     215 
     216        // タイトル編集 
     217        $tpl_subtitle = ""; 
     218        $tpl_search_mode = false; 
     219        if($_GET['mode'] == 'search'){ 
     220            $tpl_subtitle = "検索結果"; 
     221            $tpl_search_mode = true; 
     222        }elseif ($category_id == "" ) { 
     223            $tpl_subtitle = "全商品"; 
     224        }else{ 
     225            $arrFirstCat = $objDb->sfGetFirstCat($category_id); 
     226            $tpl_subtitle = $arrFirstCat['name']; 
     227        } 
     228 
     229        $objQuery = new SC_Query(); 
     230        $count = $objQuery->count("dtb_best_products", "category_id = ?", array($category_id)); 
     231 
     232        // 以下の条件でBEST商品を表示する 
     233        // ・BEST最大数の商品が登録されている。 
     234        // ・カテゴリIDがルートIDである。 
     235        // ・検索モードでない。 
     236        if(($count >= BEST_MIN) && $this->lfIsRootCategory($category_id) && ($_GET['mode'] != 'search') ) { 
     237            // 商品TOPの表示処理 
     238            /** 必ず指定する **/ 
     239 
     240            $this->arrBestItems = SC_Utils_Ex::sfGetBestProducts($conn, $category_id); 
     241            $this->BEST_ROOP_MAX = ceil((BEST_MAX-1)/2); 
     242        } else { 
     243            if ($_GET['mode'] == 'search' && strlen($_GET['category_id']) == 0 ){ 
     244                // 検索時にcategory_idがGETに存在しない場合は、仮に埋めたIDを空白に戻す 
     245                $category_id = ''; 
     246            } 
     247 
     248            // 商品一覧の表示処理 
     249            $this->lfDispProductsList($category_id, $_GET['name'], $this->disp_number, $_REQUEST['orderby']); 
     250 
     251            // 検索条件を画面に表示 
     252            // カテゴリー検索条件 
     253            if (strlen($_GET['category_id']) == 0) { 
     254                $arrSearch['category'] = "指定なし"; 
     255            }else{ 
     256                $arrCat = $conn->getOne("SELECT category_name FROM dtb_category WHERE category_id = ?",array($category_id)); 
     257                $arrSearch['category'] = $arrCat; 
     258            } 
     259 
     260            // 商品名検索条件 
     261            if ($_GET['name'] === "") { 
     262                $arrSearch['name'] = "指定なし"; 
     263            }else{ 
     264                $arrSearch['name'] = $_GET['name']; 
     265            } 
     266        } 
     267 
     268        // レイアウトデザインを取得 
     269        //$layout = new SC_Helper_PageLayout_Ex(); 
     270        //$layout->sfGetPageLayout($this, false, "products/list.php"); 
     271 
     272        if($_POST['mode'] == "cart" && $_POST['product_id'] != "") { 
     273            // 値の正当性チェック 
     274            if(!SC_Utils_Ex::sfIsInt($_POST['product_id']) || !SC_Utils_Ex::sfIsRecord("dtb_products", "product_id", $_POST['product_id'], "del_flg = 0 AND status = 1")) { 
     275                SC_Utils_Ex::sfDispSiteError(PRODUCT_NOT_FOUND, "", false, "", true); 
     276            } else { 
     277                // 入力値の変換 
     278                $this->arrErr = $this->lfCheckError($_POST['product_id']); 
     279                if(count($this->arrErr) == 0) { 
     280                    $objCartSess = new SC_CartSession(); 
     281                    $classcategory_id = "classcategory_id". $_POST['product_id']; 
     282                    $classcategory_id1 = $_POST[$classcategory_id. '_1']; 
     283                    $classcategory_id2 = $_POST[$classcategory_id. '_2']; 
     284                    $quantity = "quantity". $_POST['product_id']; 
     285                    // 規格1が設定されていない場合 
     286                    if(!$this->tpl_classcat_find1[$_POST['product_id']]) { 
     287                        $classcategory_id1 = '0'; 
     288                    } 
     289                    // 規格2が設定されていない場合 
     290                    if(!$this->tpl_classcat_find2[$_POST['product_id']]) { 
     291                        $classcategory_id2 = '0'; 
     292                    } 
     293                    $objCartSess->setPrevURL($_SERVER['REQUEST_URI']); 
     294                    $objCartSess->addProduct(array($_POST['product_id'], $classcategory_id1, $classcategory_id2), $_POST[$quantity]); 
     295                    $this->sendRedirect(MOBILE_URL_CART_TOP, array(session_name() => session_id())); 
     296                    exit; 
     297                } 
     298            } 
     299        } 
     300 
     301 
     302        // ページ送り機能用のURLを作成する。 
     303        $objURL = new Net_URL($_SERVER['PHP_SELF']); 
     304        foreach ($_REQUEST as $key => $value) { 
     305            if ($key == session_name() || $key == 'pageno') { 
     306                continue; 
     307            } 
     308            $objURL->addQueryString($key, mb_convert_encoding($value, 'SJIS', 'EUC-JP')); 
     309        } 
     310 
     311        if ($this->objNavi->now_page > 1) { 
     312            $objURL->addQueryString('pageno', $this->objNavi->now_page - 1); 
     313            $this->tpl_previous_page = $objURL->path . '?' . $objURL->getQueryString(); 
     314        } 
     315        if ($this->objNavi->now_page < $this->objNavi->max_page) { 
     316            $objURL->addQueryString('pageno', $this->objNavi->now_page + 1); 
     317            $this->tpl_next_page = $objURL->path . '?' . $objURL->getQueryString(); 
     318        } 
     319 
     320 
     321        $this->tpl_subtitle = $tpl_subtitle; 
     322        $this->tpl_search_mode = $tpl_search_mode; 
     323 
     324        // 支払方法の取得 
     325        $this->arrPayment = $this->lfGetPayment(); 
     326        // 入力情報を渡す 
     327        $this->arrForm = $_POST; 
     328 
     329        $this->category_id = $category_id; 
     330        $this->arrSearch = $arrSearch; 
     331        $this->tpl_mainpage = MOBILE_TEMPLATE_DIR . "products/list.tpl"; 
     332        SC_Utils_Ex::sfCustomDisplay($this, true); 
     333    } 
     334 
     335    /** 
    183336     * デストラクタ. 
    184337     * 
Note: See TracChangeset for help on using the changeset viewer.