- Timestamp:
- 2007/07/20 15:58:59 (17 years ago)
- Location:
- branches/feature-module-update
- Files:
-
- 1 edited
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
branches/feature-module-update
-
Property
svn:ignore
set to
.cache
.settings
.projectOptions
-
Property
svn:ignore
set to
-
branches/feature-module-update/html/admin/products/index.php
r12157 r15078 19 19 $this->tpl_subno = 'index'; 20 20 $this->tpl_pager = DATA_PATH . 'Smarty/templates/admin/pager.tpl'; 21 $this->tpl_subtitle = ' ¾¦ÉÊ¥Þ¥¹¥¿';21 $this->tpl_subtitle = '商品マスタ'; 22 22 23 23 global $arrPageMax; … … 30 30 $this->arrPRODUCTSTATUS_COLOR = $arrPRODUCTSTATUS_COLOR; 31 31 /* 32 session_start »þ¤Îno-cache¥Ø¥Ã¥À¡¼¤òÍÞÀ©¤¹¤ë¤³¤È¤Ç33 ¡ÖÌá¤ë¡×¥Ü¥¿¥ó»ÈÍÑ»þ¤Î͸ú´ü¸ÂÀÚ¤ìɽ¼¨¤òÍÞÀ©¤¹¤ë¡£34 private-no-expire: ¥¯¥é¥¤¥¢¥ó¥È¤Î¥¥ã¥Ã¥·¥å¤òµö²Ä¤¹¤ë¡£32 session_start時のno-cacheヘッダーを抑制することで 33 「戻る」ボタン使用時の有効期限切れ表示を抑制する。 34 private-no-expire:クライアントのキャッシュを許可する。 35 35 */ 36 36 session_cache_limiter('private-no-expire'); … … 44 44 $objDate = new SC_Date(); 45 45 46 // ÅÐÏ¿¡¦¹¹¿·¸¡º÷³«»Ïǯ46 // 登録・更新検索開始年 47 47 $objDate->setStartYear(RELEASE_YEAR); 48 48 $objDate->setEndYear(DATE("Y")); … … 50 50 $objPage->arrStartMonth = $objDate->getMonth(); 51 51 $objPage->arrStartDay = $objDate->getDay(); 52 // ÅÐÏ¿¡¦¹¹¿·¸¡º÷½ªÎ»Ç¯52 // 登録・更新検索終了年 53 53 $objDate->setStartYear(RELEASE_YEAR); 54 54 $objDate->setEndYear(DATE("Y")); … … 57 57 $objPage->arrEndDay = $objDate->getDay(); 58 58 59 // ǧ¾Ú²ÄÈݤÎȽÄê59 // 認証可否の判定 60 60 $objSess = new SC_Session(); 61 61 sfIsSuccess($objSess); 62 62 63 // ¥¥ã¥ó¥Ú¡¼¥ó¤ÎÊÔ½¸»þ63 //キャンペーンの編集時 64 64 if(sfIsInt($_POST['campaign_id']) && $_POST['mode'] == "camp_search") { 65 65 $objQuery = new SC_Query(); … … 71 71 } 72 72 73 // POST Ãͤΰú¤·Ñ¤®73 // POST値の引き継ぎ 74 74 $objPage->arrForm = $_POST; 75 75 76 // ¸¡º÷¥ï¡¼¥É¤Î°ú¤·Ñ¤®76 // 検索ワードの引き継ぎ 77 77 foreach ($_POST as $key => $val) { 78 78 if (ereg("^search_", $key) || ereg("^campaign_", $key)) { … … 92 92 } 93 93 94 // ¥Ú¡¼¥¸Á÷¤êÍÑ94 // ページ送り用 95 95 $objPage->arrHidden['search_pageno'] = $_POST['search_pageno']; 96 96 97 // ¾¦Éʺï½ü97 // 商品削除 98 98 if ($_POST['mode'] == "delete") { 99 99 100 100 if($_POST['category_id'] != "") { 101 // ¥é¥ó¥¯ÉÕ¤¥ì¥³¡¼¥É¤Îºï½ü101 // ランク付きレコードの削除 102 102 $where = "category_id = " . addslashes($_POST['category_id']); 103 103 sfDeleteRankRecord("dtb_products", "product_id", $_POST['product_id'], $where); … … 105 105 sfDeleteRankRecord("dtb_products", "product_id", $_POST['product_id']); 106 106 } 107 // »Ò¥Æ¡¼¥Ö¥ë(¾¦Éʵ¬³Ê)¤Îºï½ü107 // 子テーブル(商品規格)の削除 108 108 $objQuery = new SC_Query(); 109 109 $objQuery->delete("dtb_products_class", "product_id = ?", array($_POST['product_id'])); 110 110 111 // ·ï¿ô¥«¥¦¥ó¥È¥Ð¥Ã¥Á¼Â¹Ô111 // 件数カウントバッチ実行 112 112 sfCategory_Count($objQuery); 113 113 } … … 115 115 116 116 if ($_POST['mode'] == "search" || $_POST['mode'] == "csv" || $_POST['mode'] == "delete" || $_POST['mode'] == "delete_all" || $_POST['mode'] == "camp_search") { 117 // ÆþÎÏʸ»ú¤Î¶¯À©ÊÑ´¹117 // 入力文字の強制変換 118 118 lfConvertParam(); 119 // ¥¨¥é¡¼¥Á¥§¥Ã¥¯119 // エラーチェック 120 120 $objPage->arrErr = lfCheckError(); 121 121 … … 123 123 $view_where = "del_flg = 0"; 124 124 125 // ÆþÎÏ¥¨¥é¡¼¤Ê¤·125 // 入力エラーなし 126 126 if (count($objPage->arrErr) == 0) { 127 127 … … 135 135 136 136 switch ($key) { 137 case 'search_product_id': // ¾¦ÉÊID137 case 'search_product_id': // 商品ID 138 138 $where .= " AND product_id = ?"; 139 139 $view_where .= " AND product_id = ?"; 140 140 $arrval[] = $val; 141 141 break; 142 case 'search_product_class_name': // µ¬³Ê̾¾Î142 case 'search_product_class_name': //規格名称 143 143 $where_in = " (SELECT classcategory_id FROM dtb_classcategory WHERE class_id IN (SELECT class_id FROM dtb_class WHERE name LIKE ?)) "; 144 144 $where .= " AND product_id IN (SELECT product_id FROM dtb_products_class WHERE classcategory_id1 IN " . $where_in; … … 150 150 $view_where = $where; 151 151 break; 152 case 'search_name': // ¾¦ÉÊ̾152 case 'search_name': // 商品名 153 153 $where .= " AND name ILIKE ?"; 154 154 $view_where .= " AND name ILIKE ?"; 155 155 $arrval[] = "%$val%"; 156 156 break; 157 case 'search_category_id': // ¥«¥Æ¥´¥ê¡¼157 case 'search_category_id': // カテゴリー 158 158 list($tmp_where, $tmp_arrval) = sfGetCatWhere($val); 159 159 if($tmp_where != "") { … … 163 163 } 164 164 break; 165 case 'search_product_code': // ¾¦ÉÊ¥³¡¼¥É165 case 'search_product_code': // 商品コード 166 166 $where .= " AND product_id IN (SELECT product_id FROM dtb_products_class WHERE product_code ILIKE ? GROUP BY product_id)"; 167 167 $view_where .= " AND EXISTS (SELECT product_id FROM dtb_products_class as cls WHERE cls.product_code ILIKE ? AND dtb_products.product_id = cls.product_id GROUP BY cls.product_id )"; 168 168 $arrval[] = "%$val%"; 169 169 break; 170 case 'search_startyear': // ÅÐÏ¿¹¹¿·Æü¡ÊFROM¡Ë170 case 'search_startyear': // 登録更新日(FROM) 171 171 $date = sfGetTimestamp($_POST['search_startyear'], $_POST['search_startmonth'], $_POST['search_startday']); 172 172 $where.= " AND update_date >= '" . $_POST['search_startyear'] . "/" . $_POST['search_startmonth']. "/" .$_POST['search_startday'] . "'"; 173 173 $view_where.= " AND update_date >= '" . $_POST['search_startyear'] . "/" . $_POST['search_startmonth']. "/" .$_POST['search_startday'] . "'"; 174 174 break; 175 case 'search_endyear': // ÅÐÏ¿¹¹¿·Æü¡ÊTO¡Ë175 case 'search_endyear': // 登録更新日(TO) 176 176 $date = sfGetTimestamp($_POST['search_endyear'], $_POST['search_endmonth'], $_POST['search_endday']); 177 177 $date = date('Y/m/d', strtotime($date) + 86400); … … 179 179 $view_where.= " AND update_date < date('" . $date . "')"; 180 180 break; 181 case 'search_product_flag': // ¼ïÊÌ181 case 'search_product_flag': //種別 182 182 global $arrSTATUS; 183 183 $search_product_flag = sfSearchCheckBoxes($val); … … 188 188 } 189 189 break; 190 case 'search_status': // ¥¹¥Æ¡¼¥¿¥¹190 case 'search_status': // ステータス 191 191 $tmp_where = ""; 192 192 foreach ($val as $element){ … … 216 216 switch($_POST['mode']) { 217 217 case 'csv': 218 // ¥ª¥×¥·¥ç¥ó¤Î»ØÄê218 // オプションの指定 219 219 $option = "ORDER BY $order"; 220 // CSV ½ÐÎÏ¥¿¥¤¥È¥ë¹Ô¤ÎºîÀ®220 // CSV出力タイトル行の作成 221 221 $arrOutput = sfSwapArray(sfgetCsvOutput(1, " WHERE csv_id = 1 AND status = 1")); 222 222 … … 230 230 $data = lfGetProductsCSV($where, $option, $arrval, $arrOutputCols); 231 231 232 // CSV ¤òÁ÷¿®¤¹¤ë¡£232 // CSVを送信する。 233 233 sfCSVDownload($head.$data); 234 234 exit; 235 235 break; 236 236 case 'delete_all': 237 // ¸¡º÷·ë²Ì¤ò¤¹¤Ù¤Æºï½ü237 // 検索結果をすべて削除 238 238 $where = "product_id IN (SELECT product_id FROM vw_products_nonclass AS noncls WHERE $where)"; 239 239 $sqlval['del_flg'] = 1; … … 241 241 break; 242 242 default: 243 // Æɤ߹þ¤àÎó¤È¥Æ¡¼¥Ö¥ë¤Î»ØÄê243 // 読み込む列とテーブルの指定 244 244 $col = "product_id, name, category_id, main_list_image, status, product_code, price01, price02, stock, stock_unlimited"; 245 245 $from = "vw_products_nonclass AS noncls "; 246 246 247 // ¹Ô¿ô¤Î¼èÆÀ247 // 行数の取得 248 248 $linemax = $objQuery->count("dtb_products", $view_where, $arrval); 249 $objPage->tpl_linemax = $linemax; // ²¿·ï¤¬³ºÅö¤·¤Þ¤·¤¿¡£É½¼¨ÍÑ250 251 // ¥Ú¡¼¥¸Á÷¤ê¤Î½èÍý249 $objPage->tpl_linemax = $linemax; // 何件が該当しました。表示用 250 251 // ページ送りの処理 252 252 if(is_numeric($_POST['search_page_max'])) { 253 253 $page_max = $_POST['search_page_max']; … … 256 256 } 257 257 258 // ¥Ú¡¼¥¸Á÷¤ê¤Î¼èÆÀ258 // ページ送りの取得 259 259 $objNavi = new SC_PageNavi($_POST['search_pageno'], $linemax, $page_max, "fnNaviSearchPage", NAVI_PMAX); 260 260 $startno = $objNavi->start_row; 261 261 $objPage->arrPagenavi = $objNavi->arrPagenavi; 262 262 263 // ¥¥ã¥ó¥Ú¡¼¥ó¾¦Éʸ¡º÷»þ¤Ï¡¢Á´·ë²Ì¤Î¾¦ÉÊID¤òÊÑ¿ô¤Ë³ÊǼ¤¹¤ë263 //キャンペーン商品検索時は、全結果の商品IDを変数に格納する 264 264 if($_POST['search_mode'] == 'campaign') { 265 265 $arrRet = $objQuery->select($col, $from, $where, $arrval); … … 271 271 } 272 272 273 // ¼èÆÀÈϰϤλØÄê(³«»Ï¹ÔÈֹ桢¹Ô¿ô¤Î¥»¥Ã¥È)273 // 取得範囲の指定(開始行番号、行数のセット) 274 274 if(DB_TYPE != "mysql") $objQuery->setlimitoffset($page_max, $startno); 275 // ɽ¼¨½ç½ø275 // 表示順序 276 276 $objQuery->setorder($order); 277 277 278 // view ¤â¹Ê¹þ¤ß¤ò¤«¤±¤ë(mysqlÍÑ)278 // viewも絞込みをかける(mysql用) 279 279 sfViewWhere("&&noncls_where&&", $view_where, $arrval, $objQuery->order . " " . $objQuery->setlimitoffset($page_max, $startno, true)); 280 280 281 // ¸¡º÷·ë²Ì¤Î¼èÆÀ281 // 検索結果の取得 282 282 $objPage->arrProducts = $objQuery->select($col, $from, $where, $arrval); 283 283 … … 287 287 } 288 288 289 // ¥«¥Æ¥´¥ê¤ÎÆɹþ289 // カテゴリの読込 290 290 $objPage->arrCatList = sfGetCategoryList(); 291 291 $objPage->arrCatIDName = lfGetIDName($objPage->arrCatList); 292 292 293 // ²èÌ̤Îɽ¼¨293 // 画面の表示 294 294 $objView->assignobj($objPage); 295 295 $objView->display(MAIN_FRAME); … … 297 297 //--------------------------------------------------------------------------------------------------------------------------------------------------------- 298 298 299 // ¼èÆÀʸ»úÎó¤ÎÊÑ´¹299 // 取得文字列の変換 300 300 function lfConvertParam() { 301 301 global $objPage; 302 302 /* 303 * ʸ»úÎó¤ÎÊÑ´¹304 * K : ¡ÖȾ³Ñ(Êݶ¸)ÊÒ²¾Ì¾¡×¤ò¡ÖÁ´³ÑÊÒ²¾Ì¾¡×¤ËÊÑ´¹305 * C : ¡ÖÁ´³Ñ¤Ò¤é²¾Ì¾¡×¤ò¡ÖÁ´³Ñ¤«¤¿²¾Ì¾¡×¤ËÊÑ´¹306 * V : ÂùÅÀÉÕ¤¤Îʸ»ú¤ò°ìʸ»ú¤ËÊÑ´¹¡£"K","H"¤È¶¦¤Ë»ÈÍѤ·¤Þ¤¹307 * n : ¡ÖÁ´³Ñ¡×¿ô»ú¤ò¡ÖȾ³Ñ(Êݶ¸)¡×¤ËÊÑ´¹303 * 文字列の変換 304 * K : 「半角(ハンカク)片仮名」を「全角片仮名」に変換 305 * C : 「全角ひら仮名」を「全角かた仮名」に変換 306 * V : 濁点付きの文字を一文字に変換。"K","H"と共に使用します 307 * n : 「全角」数字を「半角(ハンカク)」に変換 308 308 */ 309 309 $arrConvList['search_name'] = "KVa"; 310 310 $arrConvList['search_product_code'] = "KVa"; 311 311 312 // ʸ»úÊÑ´¹312 // 文字変換 313 313 foreach ($arrConvList as $key => $val) { 314 // POST ¤µ¤ì¤Æ¤¤¿ÃͤΤßÊÑ´¹¤¹¤ë¡£314 // POSTされてきた値のみ変換する。 315 315 if(isset($objPage->arrForm[$key])) { 316 316 $objPage->arrForm[$key] = mb_convert_kana($objPage->arrForm[$key] ,$val); … … 319 319 } 320 320 321 // ¥¨¥é¡¼¥Á¥§¥Ã¥¯322 // ÆþÎÏ¥¨¥é¡¼¥Á¥§¥Ã¥¯321 // エラーチェック 322 // 入力エラーチェック 323 323 function lfCheckError() { 324 324 $objErr = new SC_CheckError(); 325 $objErr->doFunc(array(" ¾¦ÉÊID", "search_product_id"), array("NUM_CHECK"));326 $objErr->doFunc(array(" ³«»ÏÆü", "search_startyear", "search_startmonth", "search_startday"), array("CHECK_DATE"));327 $objErr->doFunc(array(" ½ªÎ»Æü", "search_endyear", "search_endmonth", "search_endday"), array("CHECK_DATE"));328 $objErr->doFunc(array(" ³«»ÏÆü", "½ªÎ»Æü", "search_startyear", "search_startmonth", "search_startday", "search_endyear", "search_endmonth", "search_endday"), array("CHECK_SET_TERM"));325 $objErr->doFunc(array("商品ID", "search_product_id"), array("NUM_CHECK")); 326 $objErr->doFunc(array("開始日", "search_startyear", "search_startmonth", "search_startday"), array("CHECK_DATE")); 327 $objErr->doFunc(array("終了日", "search_endyear", "search_endmonth", "search_endday"), array("CHECK_DATE")); 328 $objErr->doFunc(array("開始日", "終了日", "search_startyear", "search_startmonth", "search_startday", "search_endyear", "search_endmonth", "search_endday"), array("CHECK_SET_TERM")); 329 329 return $objErr->arrErr; 330 330 } 331 331 332 // ¥Á¥§¥Ã¥¯¥Ü¥Ã¥¯¥¹ÍÑWHEREʸºîÀ®332 // チェックボックス用WHERE文作成 333 333 function lfGetCBWhere($key, $max) { 334 334 $str = ""; … … 348 348 } 349 349 350 // ¥«¥Æ¥´¥êID¤ò¥¡¼¡¢¥«¥Æ¥´¥ê̾¤òÃͤˤ¹¤ëÇÛÎó¤òÊÖ¤¹¡£350 // カテゴリIDをキー、カテゴリ名を値にする配列を返す。 351 351 function lfGetIDName($arrCatList) { 352 352 $max = count($arrCatList);
Note: See TracChangeset
for help on using the changeset viewer.