source: branches/comu-utf8/html/admin/contents/recommend_search.php @ 15099

Revision 15099, 3.9 KB checked in by Yammy, 17 years ago (diff)

UTF-8変換済みファイルインポート
1.3.4ベース

Line 
1<?php
2/*
3 * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
4 *
5 * http://www.lockon.co.jp/
6 */
7require_once("../require.php");
8
9class LC_Page {
10   
11    function LC_Page() {
12        $this->tpl_mainpage = 'contents/recomend_search.tpl';
13        $this->tpl_mainno = 'contents';
14        $this->tpl_subnavi = '';
15        $this->tpl_subno = "";
16    }
17}
18
19$conn = new SC_DBConn();
20$objPage = new LC_Page();
21$objView = new SC_AdminView();
22$objSess = new SC_Session();
23
24// 認証可否の判定
25sfIsSuccess($objSess);
26
27if ($_POST['mode'] == "search") {
28   
29    // POST値の引き継ぎ
30    $objPage->arrForm = $_POST;
31    // 入力文字の強制変換
32    lfConvertParam();
33   
34   
35    $where = "del_flg = 0";
36   
37    /* 入力エラーなし */
38    foreach ($objPage->arrForm as $key => $val) {
39        if($val == "") {
40            continue;
41        }
42       
43        switch ($key) {
44            case 'search_name':
45               
46                $where .= " AND name ILIKE ?";
47                $arrval[] = "%$val%";
48                break;
49            case 'search_category_id':
50                // 子カテゴリIDの取得
51                $arrRet = sfGetChildsID("dtb_category", "parent_category_id", "category_id", $val);
52                $tmp_where = "";
53                foreach ($arrRet as $val) {
54                    if($tmp_where == "") {
55                        $tmp_where.= " AND ( category_id = ?";
56                    } else {
57                        $tmp_where.= " OR category_id = ?";
58                    }
59                    $arrval[] = $val;
60                }
61                $where.= $tmp_where . " )";
62                break;
63            case 'search_product_code':
64                $where .= " AND product_id IN (SELECT product_id FROM dtb_products_class WHERE product_code ILIKE ? GROUP BY product_id)";
65                $where .= " OR product_code ILIKE ?";
66                $arrval[] = "%$val%";
67                $arrval[] = "%$val%";
68                break;
69            default:
70                break;
71        }
72    }
73   
74    $order = "update_date DESC, product_id DESC";
75   
76    // 読み込む列とテーブルの指定
77    $col = "product_id, name, category_id, main_list_image, status, product_code, price01, stock, stock_unlimited";
78    $from = "vw_products_nonclass AS noncls ";
79       
80    $objQuery = new SC_Query();
81    // 行数の取得
82    $linemax = $objQuery->count("dtb_products", $where, $arrval);
83    $objPage->tpl_linemax = $linemax;               // 何件が該当しました。表示用
84
85    // ページ送りの処理
86    if(is_numeric($_POST['search_page_max'])) {
87        $page_max = $_POST['search_page_max'];
88    } else {
89        $page_max = SEARCH_PMAX;
90    }
91
92    // ページ送りの取得
93    $objNavi = new SC_PageNavi($_POST['search_pageno'], $linemax, $page_max, "fnNaviSearchOnlyPage", NAVI_PMAX);
94    $objPage->tpl_strnavi = $objNavi->strnavi;      // 表示文字列
95    $startno = $objNavi->start_row;
96
97    // 取得範囲の指定(開始行番号、行数のセット)
98    if(DB_TYPE != "mysql") $objQuery->setlimitoffset($page_max, $startno);
99    // 表示順序
100    $objQuery->setorder($order);
101
102    // viewも絞込みをかける(mysql用)
103    sfViewWhere("&&noncls_where&&", $where, $arrval, $objQuery->order . " " .  $objQuery->setlimitoffset($page_max, $startno, true));
104
105    // 検索結果の取得
106    $objPage->arrProducts = $objQuery->select($col, $from, $where, $arrval);
107}
108
109// カテゴリ取得
110$objPage->arrCatList = sfGetCategoryList();
111
112
113
114
115
116
117//---- ページ表示
118$objView->assignobj($objPage);
119$objView->display($objPage->tpl_mainpage);
120
121
122
123//---------------------------------------------------------------------------------------------------------------------------------------------------------
124
125/* 取得文字列の変換 */
126function lfConvertParam() {
127    global $objPage;
128    /*
129     *  文字列の変換
130     *  K :  「半角(ハンカク)片仮名」を「全角片仮名」に変換
131     *  C :  「全角ひら仮名」を「全角かた仮名」に変換
132     *  V :  濁点付きの文字を一文字に変換。"K","H"と共に使用します
133     *  n :  「全角」数字を「半角(ハンカク)」に変換
134     */
135    $arrConvList['search_name'] = "KVa";
136    $arrConvList['search_product_code'] = "KVa";
137   
138    // 文字変換
139    foreach ($arrConvList as $key => $val) {
140        // POSTされてきた値のみ変換する。
141        if(isset($objPage->arrForm[$key])) {
142            $objPage->arrForm[$key] = mb_convert_kana($objPage->arrForm[$key] ,$val);
143        }
144    }
145}
146
147
148?>
Note: See TracBrowser for help on using the repository browser.