Ignore:
Timestamp:
2007/07/20 15:58:59 (17 years ago)
Author:
nanasess
Message:

r15064 から svn cp
とりあえず暫定コミット.

  • UTF-8 に変更
  • slib.php, glib.php のクラス化
  • LC_Page の抽象化(一部)
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
  • branches/feature-module-update/html/admin/products/index.php

    r12157 r15078  
    1919        $this->tpl_subno = 'index'; 
    2020        $this->tpl_pager = DATA_PATH . 'Smarty/templates/admin/pager.tpl'; 
    21         $this->tpl_subtitle = '¾¦ÉÊ¥Þ¥¹¥¿'; 
     21        $this->tpl_subtitle = '商品マスタ'; 
    2222 
    2323        global $arrPageMax; 
     
    3030        $this->arrPRODUCTSTATUS_COLOR = $arrPRODUCTSTATUS_COLOR; 
    3131        /* 
    32          session_start»þ¤Îno-cache¥Ø¥Ã¥À¡¼¤òÍÞÀ©¤¹¤ë¤³¤È¤Ç 
    33          ¡ÖÌá¤ë¡×¥Ü¥¿¥ó»ÈÍÑ»þ¤ÎÍ­¸ú´ü¸ÂÀÚ¤ìɽ¼¨¤òÍÞÀ©¤¹¤ë¡£ 
    34          private-no-expire:¥¯¥é¥¤¥¢¥ó¥È¤Î¥­¥ã¥Ã¥·¥å¤òµö²Ä¤¹¤ë¡£ 
     32         session_start時のno-cacheヘッダーを抑制することで 
     33         「戻る」ボタン使用時の有効期限切れ表示を抑制する。 
     34         private-no-expire:クライアントのキャッシュを許可する。 
    3535        */ 
    3636        session_cache_limiter('private-no-expire');      
     
    4444$objDate = new SC_Date(); 
    4545 
    46 // ÅÐÏ¿¡¦¹¹¿·¸¡º÷³«»Ïǯ 
     46// 登録・更新検索開始年 
    4747$objDate->setStartYear(RELEASE_YEAR); 
    4848$objDate->setEndYear(DATE("Y")); 
     
    5050$objPage->arrStartMonth = $objDate->getMonth(); 
    5151$objPage->arrStartDay = $objDate->getDay(); 
    52 // ÅÐÏ¿¡¦¹¹¿·¸¡º÷½ªÎ»Ç¯ 
     52// 登録・更新検索終了年 
    5353$objDate->setStartYear(RELEASE_YEAR); 
    5454$objDate->setEndYear(DATE("Y")); 
     
    5757$objPage->arrEndDay = $objDate->getDay(); 
    5858 
    59 // ǧ¾Ú²ÄÈݤÎȽÄê 
     59// 認証可否の判定 
    6060$objSess = new SC_Session(); 
    6161sfIsSuccess($objSess); 
    6262 
    63 //¥­¥ã¥ó¥Ú¡¼¥ó¤ÎÊÔ½¸»þ 
     63//キャンペーンの編集時 
    6464if(sfIsInt($_POST['campaign_id']) && $_POST['mode'] == "camp_search") { 
    6565    $objQuery = new SC_Query(); 
     
    7171} 
    7272 
    73 // POSTÃͤΰú¤­·Ñ¤® 
     73// POST値の引き継ぎ 
    7474$objPage->arrForm = $_POST; 
    7575 
    76 // ¸¡º÷¥ï¡¼¥É¤Î°ú¤­·Ñ¤® 
     76// 検索ワードの引き継ぎ 
    7777foreach ($_POST as $key => $val) { 
    7878    if (ereg("^search_", $key) || ereg("^campaign_", $key)) { 
     
    9292} 
    9393 
    94 // ¥Ú¡¼¥¸Á÷¤êÍÑ 
     94// ページ送り用 
    9595$objPage->arrHidden['search_pageno'] = $_POST['search_pageno']; 
    9696 
    97 // ¾¦Éʺï½ü 
     97// 商品削除 
    9898if ($_POST['mode'] == "delete") { 
    9999     
    100100    if($_POST['category_id'] != "") { 
    101         // ¥é¥ó¥¯ÉÕ¤­¥ì¥³¡¼¥É¤Îºï½ü 
     101        // ランク付きレコードの削除 
    102102        $where = "category_id = " . addslashes($_POST['category_id']); 
    103103        sfDeleteRankRecord("dtb_products", "product_id", $_POST['product_id'], $where); 
     
    105105        sfDeleteRankRecord("dtb_products", "product_id", $_POST['product_id']); 
    106106    } 
    107     // »Ò¥Æ¡¼¥Ö¥ë(¾¦Éʵ¬³Ê)¤Îºï½ü 
     107    // 子テーブル(商品規格)の削除 
    108108    $objQuery = new SC_Query(); 
    109109    $objQuery->delete("dtb_products_class", "product_id = ?", array($_POST['product_id'])); 
    110110     
    111     // ·ï¿ô¥«¥¦¥ó¥È¥Ð¥Ã¥Á¼Â¹Ô 
     111    // 件数カウントバッチ実行 
    112112    sfCategory_Count($objQuery);     
    113113} 
     
    115115 
    116116if ($_POST['mode'] == "search" || $_POST['mode'] == "csv"  || $_POST['mode'] == "delete" || $_POST['mode'] == "delete_all" || $_POST['mode'] == "camp_search") { 
    117     // ÆþÎÏʸ»ú¤Î¶¯À©ÊÑ´¹ 
     117    // 入力文字の強制変換 
    118118    lfConvertParam(); 
    119     // ¥¨¥é¡¼¥Á¥§¥Ã¥¯ 
     119    // エラーチェック 
    120120    $objPage->arrErr = lfCheckError(); 
    121121 
     
    123123    $view_where = "del_flg = 0"; 
    124124     
    125     // ÆþÎÏ¥¨¥é¡¼¤Ê¤· 
     125    // 入力エラーなし 
    126126    if (count($objPage->arrErr) == 0) { 
    127127 
     
    135135             
    136136            switch ($key) { 
    137                 case 'search_product_id':   // ¾¦ÉÊID 
     137                case 'search_product_id':   // 商品ID 
    138138                    $where .= " AND product_id = ?"; 
    139139                    $view_where .= " AND product_id = ?"; 
    140140                    $arrval[] = $val; 
    141141                    break; 
    142                 case 'search_product_class_name': //µ¬³Ê̾¾Î 
     142                case 'search_product_class_name': //規格名称 
    143143                    $where_in = " (SELECT classcategory_id FROM dtb_classcategory WHERE class_id IN (SELECT class_id FROM dtb_class WHERE name LIKE ?)) "; 
    144144                    $where .= " AND product_id IN (SELECT product_id FROM dtb_products_class WHERE classcategory_id1 IN " . $where_in; 
     
    150150                    $view_where = $where; 
    151151                    break; 
    152                 case 'search_name':         // ¾¦ÉÊ̾ 
     152                case 'search_name':         // 商品名 
    153153                    $where .= " AND name ILIKE ?"; 
    154154                    $view_where .= " AND name ILIKE ?"; 
    155155                    $arrval[] = "%$val%"; 
    156156                    break; 
    157                 case 'search_category_id':  // ¥«¥Æ¥´¥ê¡¼ 
     157                case 'search_category_id':  // カテゴリー 
    158158                    list($tmp_where, $tmp_arrval) = sfGetCatWhere($val); 
    159159                    if($tmp_where != "") { 
     
    163163                    } 
    164164                    break; 
    165                 case 'search_product_code': // ¾¦ÉÊ¥³¡¼¥É 
     165                case 'search_product_code': // 商品コード 
    166166                    $where .= " AND product_id IN (SELECT product_id FROM dtb_products_class WHERE product_code ILIKE ? GROUP BY product_id)"; 
    167167                    $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 )"; 
    168168                    $arrval[] = "%$val%"; 
    169169                    break; 
    170                 case 'search_startyear':    // ÅÐÏ¿¹¹¿·Æü¡ÊFROM¡Ë 
     170                case 'search_startyear':    // 登録更新日(FROM) 
    171171                    $date = sfGetTimestamp($_POST['search_startyear'], $_POST['search_startmonth'], $_POST['search_startday']); 
    172172                    $where.= " AND update_date >= '" . $_POST['search_startyear'] . "/" . $_POST['search_startmonth']. "/" .$_POST['search_startday'] . "'"; 
    173173                    $view_where.= " AND update_date >= '" . $_POST['search_startyear'] . "/" . $_POST['search_startmonth']. "/" .$_POST['search_startday'] . "'"; 
    174174                    break; 
    175                 case 'search_endyear':      // ÅÐÏ¿¹¹¿·Æü¡ÊTO¡Ë 
     175                case 'search_endyear':      // 登録更新日(TO) 
    176176                    $date = sfGetTimestamp($_POST['search_endyear'], $_POST['search_endmonth'], $_POST['search_endday']); 
    177177                    $date = date('Y/m/d', strtotime($date) + 86400); 
     
    179179                    $view_where.= " AND update_date < date('" . $date . "')"; 
    180180                    break; 
    181                 case 'search_product_flag': //¼ïÊÌ 
     181                case 'search_product_flag': //種別 
    182182                    global $arrSTATUS; 
    183183                    $search_product_flag = sfSearchCheckBoxes($val); 
     
    188188                    } 
    189189                    break; 
    190                 case 'search_status':       // ¥¹¥Æ¡¼¥¿¥¹ 
     190                case 'search_status':       // ステータス 
    191191                    $tmp_where = ""; 
    192192                    foreach ($val as $element){ 
     
    216216        switch($_POST['mode']) { 
    217217        case 'csv': 
    218             // ¥ª¥×¥·¥ç¥ó¤Î»ØÄê 
     218            // オプションの指定 
    219219            $option = "ORDER BY $order"; 
    220             // CSV½ÐÎÏ¥¿¥¤¥È¥ë¹Ô¤ÎºîÀ® 
     220            // CSV出力タイトル行の作成 
    221221            $arrOutput = sfSwapArray(sfgetCsvOutput(1, " WHERE csv_id = 1 AND status = 1")); 
    222222             
     
    230230            $data = lfGetProductsCSV($where, $option, $arrval, $arrOutputCols); 
    231231 
    232             // CSV¤òÁ÷¿®¤¹¤ë¡£ 
     232            // CSVを送信する。 
    233233            sfCSVDownload($head.$data); 
    234234            exit; 
    235235            break; 
    236236        case 'delete_all': 
    237             // ¸¡º÷·ë²Ì¤ò¤¹¤Ù¤Æºï½ü 
     237            // 検索結果をすべて削除 
    238238            $where = "product_id IN (SELECT product_id FROM vw_products_nonclass AS noncls  WHERE $where)"; 
    239239            $sqlval['del_flg'] = 1; 
     
    241241            break; 
    242242        default: 
    243             // Æɤ߹þ¤àÎó¤È¥Æ¡¼¥Ö¥ë¤Î»ØÄê 
     243            // 読み込む列とテーブルの指定 
    244244            $col = "product_id, name, category_id, main_list_image, status, product_code, price01, price02, stock, stock_unlimited"; 
    245245            $from = "vw_products_nonclass AS noncls "; 
    246246 
    247             // ¹Ô¿ô¤Î¼èÆÀ 
     247            // 行数の取得 
    248248            $linemax = $objQuery->count("dtb_products", $view_where, $arrval); 
    249             $objPage->tpl_linemax = $linemax;               // ²¿·ï¤¬³ºÅö¤·¤Þ¤·¤¿¡£É½¼¨ÍÑ 
    250  
    251             // ¥Ú¡¼¥¸Á÷¤ê¤Î½èÍý 
     249            $objPage->tpl_linemax = $linemax;               // 何件が該当しました。表示用 
     250 
     251            // ページ送りの処理 
    252252            if(is_numeric($_POST['search_page_max'])) {  
    253253                $page_max = $_POST['search_page_max']; 
     
    256256            } 
    257257 
    258             // ¥Ú¡¼¥¸Á÷¤ê¤Î¼èÆÀ 
     258            // ページ送りの取得 
    259259            $objNavi = new SC_PageNavi($_POST['search_pageno'], $linemax, $page_max, "fnNaviSearchPage", NAVI_PMAX); 
    260260            $startno = $objNavi->start_row; 
    261261            $objPage->arrPagenavi = $objNavi->arrPagenavi; 
    262262             
    263             //¥­¥ã¥ó¥Ú¡¼¥ó¾¦Éʸ¡º÷»þ¤Ï¡¢Á´·ë²Ì¤Î¾¦ÉÊID¤òÊÑ¿ô¤Ë³ÊǼ¤¹¤ë 
     263            //キャンペーン商品検索時は、全結果の商品IDを変数に格納する 
    264264            if($_POST['search_mode'] == 'campaign') { 
    265265                $arrRet = $objQuery->select($col, $from, $where, $arrval); 
     
    271271            } 
    272272 
    273             // ¼èÆÀÈϰϤλØÄê(³«»Ï¹ÔÈֹ桢¹Ô¿ô¤Î¥»¥Ã¥È) 
     273            // 取得範囲の指定(開始行番号、行数のセット) 
    274274            if(DB_TYPE != "mysql") $objQuery->setlimitoffset($page_max, $startno); 
    275             // ɽ¼¨½ç½ø 
     275            // 表示順序 
    276276            $objQuery->setorder($order); 
    277277             
    278             // view¤â¹Ê¹þ¤ß¤ò¤«¤±¤ë(mysqlÍÑ) 
     278            // viewも絞込みをかける(mysql用) 
    279279            sfViewWhere("&&noncls_where&&", $view_where, $arrval, $objQuery->order . " " .  $objQuery->setlimitoffset($page_max, $startno, true)); 
    280280 
    281             // ¸¡º÷·ë²Ì¤Î¼èÆÀ 
     281            // 検索結果の取得 
    282282            $objPage->arrProducts = $objQuery->select($col, $from, $where, $arrval); 
    283283             
     
    287287} 
    288288     
    289 // ¥«¥Æ¥´¥ê¤ÎÆɹþ 
     289// カテゴリの読込 
    290290$objPage->arrCatList = sfGetCategoryList(); 
    291291$objPage->arrCatIDName = lfGetIDName($objPage->arrCatList); 
    292292 
    293 // ²èÌ̤Îɽ¼¨ 
     293// 画面の表示 
    294294$objView->assignobj($objPage); 
    295295$objView->display(MAIN_FRAME); 
     
    297297//--------------------------------------------------------------------------------------------------------------------------------------------------------- 
    298298 
    299 // ¼èÆÀʸ»úÎó¤ÎÊÑ´¹  
     299// 取得文字列の変換  
    300300function lfConvertParam() { 
    301301    global $objPage; 
    302302    /* 
    303      *  ʸ»úÎó¤ÎÊÑ´¹ 
    304      *  K :  ¡ÖȾ³Ñ(ŽÊŽÝŽ¶Ž¸)ÊÒ²¾Ì¾¡×¤ò¡ÖÁ´³ÑÊÒ²¾Ì¾¡×¤ËÊÑ´¹ 
    305      *  C :  ¡ÖÁ´³Ñ¤Ò¤é²¾Ì¾¡×¤ò¡ÖÁ´³Ñ¤«¤¿²¾Ì¾¡×¤ËÊÑ´¹ 
    306      *  V :  ÂùÅÀÉÕ¤­¤Îʸ»ú¤ò°ìʸ»ú¤ËÊÑ´¹¡£"K","H"¤È¶¦¤Ë»ÈÍѤ·¤Þ¤¹   
    307      *  n :  ¡ÖÁ´³Ñ¡×¿ô»ú¤ò¡ÖȾ³Ñ(ŽÊŽÝŽ¶Ž¸)¡×¤ËÊÑ´¹ 
     303     *  文字列の変換 
     304     *  K :  「半角(ハンカク)片仮名」を「全角片仮名」に変換 
     305     *  C :  「全角ひら仮名」を「全角かた仮名」に変換 
     306     *  V :  濁点付きの文字を一文字に変換。"K","H"と共に使用します  
     307     *  n :  「全角」数字を「半角(ハンカク)」に変換 
    308308     */ 
    309309    $arrConvList['search_name'] = "KVa"; 
    310310    $arrConvList['search_product_code'] = "KVa"; 
    311311     
    312     // ʸ»úÊÑ´¹ 
     312    // 文字変換 
    313313    foreach ($arrConvList as $key => $val) { 
    314         // POST¤µ¤ì¤Æ¤­¤¿ÃͤΤßÊÑ´¹¤¹¤ë¡£ 
     314        // POSTされてきた値のみ変換する。 
    315315        if(isset($objPage->arrForm[$key])) { 
    316316            $objPage->arrForm[$key] = mb_convert_kana($objPage->arrForm[$key] ,$val); 
     
    319319} 
    320320 
    321 // ¥¨¥é¡¼¥Á¥§¥Ã¥¯  
    322 // ÆþÎÏ¥¨¥é¡¼¥Á¥§¥Ã¥¯ 
     321// エラーチェック  
     322// 入力エラーチェック 
    323323function lfCheckError() { 
    324324    $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")); 
    329329    return $objErr->arrErr; 
    330330} 
    331331 
    332 // ¥Á¥§¥Ã¥¯¥Ü¥Ã¥¯¥¹ÍÑWHEREʸºîÀ® 
     332// チェックボックス用WHERE文作成 
    333333function lfGetCBWhere($key, $max) { 
    334334    $str = ""; 
     
    348348} 
    349349 
    350 // ¥«¥Æ¥´¥êID¤ò¥­¡¼¡¢¥«¥Æ¥´¥ê̾¤òÃͤˤ¹¤ëÇÛÎó¤òÊÖ¤¹¡£ 
     350// カテゴリIDをキー、カテゴリ名を値にする配列を返す。 
    351351function lfGetIDName($arrCatList) { 
    352352    $max = count($arrCatList); 
Note: See TracChangeset for help on using the changeset viewer.