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/develop/csv.php

    r12157 r15078  
    1111$objSess = new SC_Session(); 
    1212 
    13 // ¥Ñ¥é¥á¡¼¥¿´ÉÍý¥¯¥é¥¹ 
     13// パラメータ管理クラス 
    1414$objFormParam = new SC_FormParam(); 
    15 // ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½ 
     15// パラメータ情報の初期化 
    1616lfInitParam(); 
    1717$colmax = $objFormParam->getCount(); 
    1818 
    19 // °ì»þ¥Õ¥¡¥¤¥ë̾¤Î¼èÆÀ 
     19// 一時ファイル名の取得 
    2020$filepath = $argv[1];  
    2121 
     
    2525} 
    2626 
    27 // ¥¨¥ó¥³¡¼¥É 
     27// エンコード 
    2828$enc_filepath = sfEncodeFile($filepath, CHAR_CODE, CSV_TEMP_DIR); 
    2929 
     
    3535} 
    3636 
    37 fwrite(STDOUT, "¢£" . $total . "·ï¤Î¥ì¥³¡¼¥É¤òÅÐÏ¿¤·¤Þ¤·¤¿¡£\n"); 
     37fwrite(STDOUT, "■" . $total . "件のレコードを登録しました。\n"); 
    3838 
    3939//-------------------------------------------------------------------------------------------------------------------------- 
    4040 
    41 /* ¥Õ¥¡¥¤¥ë¾ðÊó¤Î½é´ü²½ */ 
     41/* ファイル情報の初期化 */ 
    4242function lfInitFile() { 
    4343    global $objUpFile; 
    44     $objUpFile->addFile("CSV¥Õ¥¡¥¤¥ë", 'csv_file', array('csv'), CSV_SIZE, true, 0, 0, false); 
    45 } 
    46  
    47 /* ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½ */ 
     44    $objUpFile->addFile("CSVファイル", 'csv_file', array('csv'), CSV_SIZE, true, 0, 0, false); 
     45} 
     46 
     47/* パラメータ情報の初期化 */ 
    4848function lfInitParam() { 
    4949    global $objFormParam; 
    5050     
    51     $objFormParam->addParam("¾¦ÉÊ̾", "name", MTEXT_LEN, "KVa", array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    52     $objFormParam->addParam("¥«¥Æ¥´¥êID", "category_id", INT_LEN, "n", array("EXIST_CHECK","MAX_LENGTH_CHECK","NUM_CHECK")); 
    53     $objFormParam->addParam("¾¦ÉÊ¥³¡¼¥É", "product_code", STEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    54     $objFormParam->addParam("¾¦ÉʲÁ³Ê", "price02", PRICE_LEN, "n", array("EXIST_CHECK","MAX_LENGTH_CHECK","NUM_CHECK")); 
    55     $objFormParam->addParam("¾¦ÉʲÁ³Ê", "price01", PRICE_LEN, "n", array("MAX_LENGTH_CHECK","NUM_CHECK")); 
    56     $objFormParam->addParam("ºß¸Ë¿ô", "stock", INT_LEN, "n", array("MAX_LENGTH_CHECK","NUM_CHECK")); 
    57     $objFormParam->addParam("¹ØÆþÀ©¸Â", "sale_limit", INT_LEN, "n", array("MAX_LENGTH_CHECK","NUM_CHECK")); 
    58     $objFormParam->addParam("¥á¡¼¥«¡¼URL", "comment1", LTEXT_LEN, "KVa", array("URL_CHECK", "SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    59     $objFormParam->addParam("¾¦ÉÊ¥¹¥Æ¡¼¥¿¥¹", "product_flag", INT_LEN, "n", array("MAX_LENGTH_CHECK","NUM_CHECK")); 
    60     $objFormParam->addParam("¥Ý¥¤¥ó¥ÈÉÕͿΨ", "point_rate", PERCENTAGE_LEN, "n", array("EXIST_CHECK","MAX_LENGTH_CHECK","NUM_CHECK")); 
    61     $objFormParam->addParam("¥á¥¤¥ó°ìÍ÷¥³¥á¥ó¥È", "main_list_comment", LTEXT_LEN, "KVa", array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    62     $objFormParam->addParam("¥á¥¤¥ó¥³¥á¥ó¥È", "main_comment", LTEXT_LEN, "KVa", array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
     51    $objFormParam->addParam("商品名", "name", MTEXT_LEN, "KVa", array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
     52    $objFormParam->addParam("カテゴリID", "category_id", INT_LEN, "n", array("EXIST_CHECK","MAX_LENGTH_CHECK","NUM_CHECK")); 
     53    $objFormParam->addParam("商品コード", "product_code", STEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK")); 
     54    $objFormParam->addParam("商品価格", "price02", PRICE_LEN, "n", array("EXIST_CHECK","MAX_LENGTH_CHECK","NUM_CHECK")); 
     55    $objFormParam->addParam("商品価格", "price01", PRICE_LEN, "n", array("MAX_LENGTH_CHECK","NUM_CHECK")); 
     56    $objFormParam->addParam("在庫数", "stock", INT_LEN, "n", array("MAX_LENGTH_CHECK","NUM_CHECK")); 
     57    $objFormParam->addParam("購入制限", "sale_limit", INT_LEN, "n", array("MAX_LENGTH_CHECK","NUM_CHECK")); 
     58    $objFormParam->addParam("メーカーURL", "comment1", LTEXT_LEN, "KVa", array("URL_CHECK", "SPTAB_CHECK","MAX_LENGTH_CHECK")); 
     59    $objFormParam->addParam("商品ステータス", "product_flag", INT_LEN, "n", array("MAX_LENGTH_CHECK","NUM_CHECK")); 
     60    $objFormParam->addParam("ポイント付与率", "point_rate", PERCENTAGE_LEN, "n", array("EXIST_CHECK","MAX_LENGTH_CHECK","NUM_CHECK")); 
     61    $objFormParam->addParam("メイン一覧コメント", "main_list_comment", LTEXT_LEN, "KVa", array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
     62    $objFormParam->addParam("メインコメント", "main_comment", LTEXT_LEN, "KVa", array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    6363     
    6464    for($i = 1; $i <= PRODUCTSUB_MAX; $i++) { 
    65         $objFormParam->addParam("¾ÜºÙ-¥µ¥Ö¥¿¥¤¥È¥ë($i)", "sub_title$i", LTEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    66         $objFormParam->addParam("¾ÜºÙ-¥µ¥Ö¥³¥á¥ó¥È($i)", "sub_comment$i", LTEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    67         $objFormParam->addParam("¾ÜºÙ-¥µ¥Ö²èÁü($i)", "sub_image$i", LTEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK","FIND_FILE")); 
    68         $objFormParam->addParam("¾ÜºÙ-¥µ¥Ö²èÁü³ÈÂç($i)", "sub_large_image$i", LTEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK","FIND_FILE")); 
     65        $objFormParam->addParam("詳細-サブタイトル($i)", "sub_title$i", LTEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK")); 
     66        $objFormParam->addParam("詳細-サブコメント($i)", "sub_comment$i", LTEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK")); 
     67        $objFormParam->addParam("詳細-サブ画像($i)", "sub_image$i", LTEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK","FIND_FILE")); 
     68        $objFormParam->addParam("詳細-サブ画像拡大($i)", "sub_large_image$i", LTEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK","FIND_FILE")); 
    6969    } 
    7070         
    71     $objFormParam->addParam("¥á¥¤¥ó°ìÍ÷²èÁü", "main_list_image", LTEXT_LEN, "KVa", array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK","FIND_FILE")); 
    72     $objFormParam->addParam("¥á¥¤¥ó¾ÜºÙ²èÁü", "main_image", LTEXT_LEN, "KVa", array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK","FIND_FILE")); 
    73     $objFormParam->addParam("¥á¥¤¥ó¾ÜºÙ³ÈÂç²èÁü", "main_large_image", LTEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK","FIND_FILE")); 
    74     $objFormParam->addParam("Èæ³Ó²èÁü", "file1", LTEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK","FIND_FILE")); 
    75     $objFormParam->addParam("¾¦Éʾܺ٥ե¡¥¤¥ë", "file2", LTEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    76     $objFormParam->addParam("Á÷ÎÁ", "deliv_fee", PRICE_LEN, "n", array("MAX_LENGTH_CHECK","NUM_CHECK")); 
    77     $objFormParam->addParam("ºß¸Ë̵À©¸Â", "stock_unlimited", INT_LEN, "n", array("MAX_LENGTH_CHECK","NUM_CHECK")); 
    78     $objFormParam->addParam("ÈÎÇä̵À©¸Â", "sale_unlimited", INT_LEN, "n", array("MAX_LENGTH_CHECK","NUM_CHECK")); 
    79 } 
    80  
    81 /* Æüì¹àÌܤÎÊÑ´¹ */ 
     71    $objFormParam->addParam("メイン一覧画像", "main_list_image", LTEXT_LEN, "KVa", array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK","FIND_FILE")); 
     72    $objFormParam->addParam("メイン詳細画像", "main_image", LTEXT_LEN, "KVa", array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK","FIND_FILE")); 
     73    $objFormParam->addParam("メイン詳細拡大画像", "main_large_image", LTEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK","FIND_FILE")); 
     74    $objFormParam->addParam("比較画像", "file1", LTEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK","FIND_FILE")); 
     75    $objFormParam->addParam("商品詳細ファイル", "file2", LTEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK")); 
     76    $objFormParam->addParam("送料", "deliv_fee", PRICE_LEN, "n", array("MAX_LENGTH_CHECK","NUM_CHECK")); 
     77    $objFormParam->addParam("在庫無制限", "stock_unlimited", INT_LEN, "n", array("MAX_LENGTH_CHECK","NUM_CHECK")); 
     78    $objFormParam->addParam("販売無制限", "sale_unlimited", INT_LEN, "n", array("MAX_LENGTH_CHECK","NUM_CHECK")); 
     79} 
     80 
     81/* 特殊項目の変換 */ 
    8282function lfConvFormat($array) { 
    8383    global $arrDISP; 
     
    9595} 
    9696 
    97 /* ¾¦Éʤο·µ¬Äɲà */ 
     97/* 商品の新規追加 */ 
    9898function lfInsertProduct($objQuery) { 
    9999    global $objFormParam; 
    100100    $arrRet = $objFormParam->getHashArray(); 
    101101     
    102     // µ¬³Ê¤ËÅÐÏ¿¤µ¤ì¤ëÃͤò½ü³°¤¹¤ë¡£ 
     102    // 規格に登録される値を除外する。 
    103103    foreach($arrRet as $key => $val) { 
    104104        switch($key) { 
     
    119119        $sqlval['product_id'] = $product_id; 
    120120    } 
    121     $sqlval['status'] = 1;  // ɽ¼¨¤ËÀßÄꤹ¤ë¡£ 
     121    $sqlval['status'] = 1;  // 表示に設定する。 
    122122    $sqlval['update_date'] = "Now()"; 
    123123    $sqlval['create_date'] = "Now()"; 
     
    130130    $sqlval['rank'] = $objQuery->max("dtb_products", "rank", "del_flg = 0 AND category_id = ?", array($sqlval['category_id'])) + 1; 
    131131     
    132     // µ¬³ÊÅÐÏ¿ 
     132    // 規格登録 
    133133    sfInsertProductClass($objQuery, $arrRet, $product_id); 
    134     // INSERT¤Î¼Â¹Ô 
     134    // INSERTの実行 
    135135    $objQuery->fast_insert("dtb_products", $sqlval); 
    136136    if (DB_TYPE == "mysql") { 
     
    139139} 
    140140 
    141 /* ÆþÎÏÆâÍƤΥÁ¥§¥Ã¥¯ */ 
     141/* 入力内容のチェック */ 
    142142function lfCheckError() { 
    143143    global $objFormParam; 
    144     // ÆþÎϥǡ¼¥¿¤òÅϤ¹¡£ 
     144    // 入力データを渡す。 
    145145    $arrRet =  $objFormParam->getHashArray(); 
    146146    $objErr = new SC_CheckError($arrRet); 
     
    154154        $level = $objQuery->get($table, $col, $where, array($arrRet['category_id'])); 
    155155        if($level != LEVEL_MAX) { 
    156             $objErr->arrErr['category_id'] = "¢¨ ¤³¤Î¥«¥Æ¥´¥êID¤Ë¤Ï¾¦ÉʤòÅÐÏ¿¤Ç¤­¤Þ¤»¤ó¡£"; 
     156            $objErr->arrErr['category_id'] = "※ このカテゴリIDには商品を登録できません。"; 
    157157        } 
    158158    } 
     
    164164             
    165165    $fp = fopen($filepath, "r"); 
    166     $line = 0;      // ¹Ô¿ô 
    167     $regist = 0;    // ÅÐÏ¿¿ô 
     166    $line = 0;      // 行数 
     167    $regist = 0;    // 登録数 
    168168     
    169169    $objQuery = new SC_Query(); 
     
    173173    while(!feof($fp)) { 
    174174        $arrCSV = fgetcsv($fp, 10000); 
    175         // ¹Ô¥«¥¦¥ó¥È 
     175        // 行カウント 
    176176        $line++; 
    177177                         
    178         // ¹àÌÜ¿ô¥«¥¦¥ó¥È 
     178        // 項目数カウント 
    179179        $max = count($arrCSV); 
    180180         
    181         // ¹àÌÜ¿ô¤¬1°Ê²¼¤Î¾ì¹ç¤Ï̵»ë¤¹¤ë 
     181        // 項目数が1以下の場合は無視する 
    182182        if($max <= 1) { 
    183183            continue;            
    184184        } 
    185185             
    186         // ¹àÌÜ¿ô¥Á¥§¥Ã¥¯ 
     186        // 項目数チェック 
    187187        if($max != $colmax) { 
    188             fwrite(STDOUT, "¢¨ ¹àÌÜ¿ô¤¬" . $max . "¸Ä¸¡½Ð¤µ¤ì¤Þ¤·¤¿¡£¹àÌÜ¿ô¤Ï" . $colmax . "¸Ä¤Ë¤Ê¤ê¤Þ¤¹¡£\n"); 
     188            fwrite(STDOUT, "※ 項目数が" . $max . "個検出されました。項目数は" . $colmax . "個になります。\n"); 
    189189             
    190190            ob_start(); 
     
    195195            $err = true; 
    196196        } else { 
    197             // ¥·¡¼¥±¥ó¥¹ÇÛÎó¤ò³ÊǼ¤¹¤ë¡£ 
     197            // シーケンス配列を格納する。 
    198198            $objFormParam->setParam($arrCSV, true); 
    199199            $arrRet = $objFormParam->getHashArray(); 
    200             // Ãͤò¥Õ¥©¡¼¥Þ¥Ã¥ÈÊÑ´¹¤·¤Æ³ÊǼ¤¹¤ë¡£ 
     200            // 値をフォーマット変換して格納する。 
    201201            $arrRet = lfConvFormat($arrRet); 
    202202            $objFormParam->setParam($arrRet); 
    203             // ÆþÎÏÃͤÎÊÑ´¹ 
     203            // 入力値の変換 
    204204            $objFormParam->convParam(); 
    205             // <br>¤Ê¤·¤Ç¥¨¥é¡¼¼èÆÀ¤¹¤ë¡£ 
     205            // <br>なしでエラー取得する。 
    206206            $objPage->arrCSVErr = lfCheckError(); 
    207207        } 
    208208             
    209         // ÆþÎÏ¥¨¥é¡¼¥Á¥§¥Ã¥¯ 
     209        // 入力エラーチェック 
    210210        if(count($objPage->arrCSVErr) > 0) { 
    211             fwrite(STDOUT, "¢£" . $line . "¹ÔÌܤǥ¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£\n"); 
     211            fwrite(STDOUT, "■" . $line . "行目でエラーが発生しました。\n"); 
    212212            $objPage->arrParam = $objFormParam->getHashArray(); 
    213213            $err = true; 
Note: See TracChangeset for help on using the changeset viewer.