Changeset 15537 for branches/feature-module-update/html
- Timestamp:
- 2007/09/01 16:36:33 (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/feature-module-update/html/admin/products/review.php
r15532 r15537 5 5 * http://www.lockon.co.jp/ 6 6 */ 7 require_once("../require.php");8 require_once("./index_csv.php");9 7 10 session_start(); 8 // {{{ requires 9 require_once("../../require.php"); 10 require_once(CLASS_PATH . "page_extends/admin/products/LC_Page_Admin_Products_Review_Ex.php"); 11 11 12 class LC_Page { 13 var $arrSession; 14 function LC_Page() { 15 global $arrPageMax; 16 global $arrRECOMMEND; 17 global $arrSex; 18 $this->arrPageMax = $arrPageMax; 19 $this->arrRECOMMEND = $arrRECOMMEND; 20 $this->arrSex = $arrSex; 21 $this->tpl_mainpage = 'products/review.tpl'; 22 $this->tpl_subnavi = 'products/subnavi.tpl'; 23 $this->tpl_mainno = 'products'; 24 $this->tpl_subno = 'review'; 25 $this->tpl_pager = DATA_PATH . 'Smarty/templates/admin/pager.tpl'; 26 $this->tpl_subtitle = 'レビュー管理'; 27 } 28 } 12 // }}} 13 // {{{ generate page 29 14 30 $objPage = new LC_Page(); 31 $objView = new SC_AdminView(); 32 $objSess = new SC_Session(); 33 $objDate = new SC_Date(); 34 $objQuery = new SC_Query(); 35 36 // 登録・更新検索開始年 37 $objDate->setStartYear(RELEASE_YEAR); 38 $objDate->setEndYear(DATE("Y")); 39 $objPage->arrStartYear = $objDate->getYear(); 40 $objPage->arrStartMonth = $objDate->getMonth(); 41 $objPage->arrStartDay = $objDate->getDay(); 42 // 登録・更新検索終了年 43 $objDate->setStartYear(RELEASE_YEAR); 44 $objDate->setEndYear(DATE("Y")); 45 $objPage->arrEndYear = $objDate->getYear(); 46 $objPage->arrEndMonth = $objDate->getMonth(); 47 $objPage->arrEndDay = $objDate->getDay(); 48 49 // 認証可否の判定 50 sfIsSuccess($objSess); 51 52 //レビュー情報のカラムの取得 53 $select="review_id, A.product_id, reviewer_name, sex, recommend_level, "; 54 $select.="reviewer_url, title, comment, A.status, A.create_date, A.update_date, name"; 55 $from = "dtb_review AS A LEFT JOIN dtb_products AS B ON A.product_id = B.product_id "; 56 57 // 検索ワードの引き継ぎ 58 foreach ($_POST as $key => $val) { 59 if (ereg("^search_", $key)) { 60 switch ($key){ 61 case 'search_sex': 62 $objPage->arrHidden[$key] = sfMergeParamCheckBoxes($val); 63 if(!is_array($val)) { 64 $objPage->arrForm[$key] = split("-", $val); 65 } 66 break; 67 68 default: 69 $objPage->arrHidden[$key] = $val; 70 break; 71 } 72 } 73 } 74 75 if ($_POST['mode'] == "delete"){ 76 //レビューの削除 77 $objQuery->exec("UPDATE dtb_review SET del_flg=1 WHERE review_id=?", array($_POST['review_id'])); 78 } 79 80 if ($_POST['mode'] == 'search' || $_POST['mode'] == 'csv' || $_POST['mode'] == 'delete'){ 81 82 //削除されていない商品を検索 83 $where="A.del_flg = 0 AND B.del_flg = 0"; 84 $objPage->arrForm = $_POST; 85 if (!is_array($_POST['search_sex'])){ 86 $objPage->arrForm['search_sex'] = split("-", $_POST['search_sex']); 87 } 88 //エラーチェック 89 $objPage->arrErr = lfCheckError(); 90 91 if (!$objPage->arrErr){ 92 foreach ($_POST as $key => $val){ 93 94 $val = sfManualEscape($val); 95 96 if($val == "") { 97 continue; 98 } 99 100 switch ($key){ 101 case 'search_reviewer_name': 102 $val = ereg_replace(" ", "%", $val); 103 $val = ereg_replace(" ", "%", $val); 104 $where.= " AND reviewer_name ILIKE ? "; 105 $arrval[] = "%$val%"; 106 break; 107 108 case 'search_reviewer_url': 109 $val = ereg_replace(" ", "%", $val); 110 $val = ereg_replace(" ", "%", $val); 111 $where.= " AND reviewer_url ILIKE ? "; 112 $arrval[] = "%$val%"; 113 break; 114 115 case 'search_name': 116 $val = ereg_replace(" ", "%", $val); 117 $val = ereg_replace(" ", "%", $val); 118 $where.= " AND name ILIKE ? "; 119 $arrval[] = "%$val%"; 120 break; 121 122 case 'search_product_code': 123 $val = ereg_replace(" ", "%", $val); 124 $val = ereg_replace(" ", "%", $val); 125 $where.= " AND A.product_id IN (SELECT product_id FROM dtb_products_class WHERE product_code ILIKE ? )"; 126 $arrval[] = "%$val%"; 127 break; 128 129 case 'search_sex': 130 $tmp_where = ""; 131 //$val=配列の中身,$element=各キーの値(1,2) 132 if (is_array($val)){ 133 foreach($val as $element) { 134 if($element != "") { 135 if($tmp_where == "") { 136 $tmp_where .= " AND (sex = ?"; 137 } else { 138 $tmp_where .= " OR sex = ?"; 139 } 140 $arrval[] = $element; 141 } 142 } 143 if($tmp_where != "") { 144 $tmp_where .= ")"; 145 $where .= " $tmp_where "; 146 } 147 } 148 149 break; 150 151 case 'search_recommend_level': 152 $where.= " AND recommend_level LIKE ? "; 153 $arrval[] = $val; 154 break; 155 156 case 'search_startyear': 157 if (isset($_POST['search_startyear']) && isset($_POST['search_startmonth']) && isset($_POST['search_startday'])){ 158 $date = sfGetTimestamp($_POST['search_startyear'], $_POST['search_startmonth'], $_POST['search_startday']); 159 $where.= " AND A.create_date >= ? "; 160 $arrval[] = $date; 161 } 162 break; 163 164 case 'search_endyear': 165 if (isset($_POST['search_startyear']) && isset($_POST['search_startmonth']) && isset($_POST['search_startday'])){ 166 $date = sfGetTimestamp($_POST['search_endyear'], $_POST['search_endmonth'], $_POST['search_endday']); 167 168 $end_date = date("Y/m/d",strtotime("1 day" ,strtotime($date))); 169 170 $where.= " AND A.create_date <= cast('$end_date' as date) "; 171 } 172 break; 173 } 174 175 } 176 177 } 178 179 $order = "A.create_date DESC"; 180 181 // ページ送りの処理 182 if(is_numeric($_POST['search_page_max'])) { 183 $page_max = $_POST['search_page_max']; 184 } else { 185 $page_max = SEARCH_PMAX; 186 } 187 188 $linemax = $objQuery->count($from, $where, $arrval); 189 $objPage->tpl_linemax = $linemax; 190 191 // ページ送りの取得 192 $objNavi = new SC_PageNavi($_POST['search_pageno'], $linemax, $page_max, "fnNaviSearchPage", NAVI_PMAX); 193 $objPage->arrPagenavi = $objNavi->arrPagenavi; 194 $startno = $objNavi->start_row; 195 196 $objPage->tpl_pageno = $_POST['search_pageno']; 197 198 // 取得範囲の指定(開始行番号、行数のセット) 199 $objQuery->setlimitoffset($page_max, $startno); 200 201 // 表示順序 202 $objQuery->setorder($order); 203 204 //検索結果の取得 205 $objPage->arrReview = $objQuery->select($select, $from, $where, $arrval); 206 207 //CSVダウンロード 208 if ($_POST['mode'] == 'csv'){ 209 // オプションの指定 210 $option = "ORDER BY review_id"; 211 // CSV出力タイトル行の作成 212 $head = sfGetCSVList($arrREVIEW_CVSTITLE); 213 $data = lfGetReviewCSV($where, '', $arrval); 214 // CSVを送信する。 215 sfCSVDownload($head.$data); 216 exit; 217 } 218 } 219 220 $objView->assignobj($objPage); 221 $objView->display(MAIN_FRAME); 222 223 //------------------------------------------------------------------------------------- 224 225 // 入力エラーチェック 226 function lfCheckError() { 227 $objErr = new SC_CheckError(); 228 switch ($_POST['mode']){ 229 case 'search': 230 $objErr->doFunc(array("投稿者", "search_startyear", "search_startmonth", "search_startday"), array("CHECK_DATE")); 231 $objErr->doFunc(array("開始日", "search_startyear", "search_startmonth", "search_startday"), array("CHECK_DATE")); 232 $objErr->doFunc(array("終了日", "search_endyear", "search_endmonth", "search_endday"), array("CHECK_DATE")); 233 $objErr->doFunc(array("開始日", "終了日", "search_startyear", "search_startmonth", "search_startday", "search_endyear", "search_endmonth", "search_endday"), array("CHECK_SET_TERM")); 234 break; 235 236 case 'complete': 237 $objErr->doFunc(array("おすすめレベル", "recommend_level"), array("SELECT_CHECK")); 238 $objErr->doFunc(array("タイトル", "title", STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 239 $objErr->doFunc(array("コメント", "comment", LTEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 240 break; 241 } 242 return $objErr->arrErr; 243 } 244 15 $objPage = new LC_Page_Admin_Products_Review_Ex(); 16 $objPage->init(); 17 $objPage->process(); 18 register_shutdown_function(array($objPage, "destroy")); 245 19 ?>
Note: See TracChangeset
for help on using the changeset viewer.