source: branches/feature-module-update/html/admin/products/upload_rakuten.php @ 15078

Revision 15078, 5.5 KB checked in by nanasess, 17 years ago (diff)

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

  • UTF-8 に変更
  • slib.php, glib.php のクラス化
  • LC_Page の抽象化(一部)
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");
8require_once("./upload_csv.inc");
9
10// 1行あたりの最大文字数
11define("CSV_LINE_MAX", 10000);
12
13class LC_Page {
14    var $arrSession;
15    var $arrCSVErr;
16    function LC_Page() {
17        $this->tpl_mainpage = 'products/upload_csv.tpl';
18        $this->tpl_subnavi = 'products/subnavi.tpl';
19        $this->tpl_mainno = 'products';
20        $this->tpl_subno = 'upload_rakuten';
21    }
22}
23
24$conn = new SC_DBConn();
25$objPage = new LC_Page();
26$objView = new SC_AdminView();
27$objSess = new SC_Session();
28
29// 認証可否の判定
30sfIsSuccess($objSess);
31
32// ファイル管理クラス
33$objUpFile = new SC_UploadFile(IMAGE_TEMP_DIR, IMAGE_SAVE_DIR);
34// ファイル情報の初期化
35lfInitFile();
36// パラメータ管理クラス
37$objFormParam = new SC_FormParam();
38// パラメータ情報の初期化
39lfInitParam();
40$colmax = $objFormParam->getCount();
41$objFormParam->setHtmlDispNameArray();
42$objPage->arrTitle = $objFormParam->getHtmlDispNameArray();
43
44switch($_POST['mode']) {
45case 'csv_upload':
46    $err = false;
47    // エラーチェック
48    $objPage->arrErr['csv_file'] = $objUpFile->makeTempFile('csv_file');
49   
50    if($objPage->arrErr['css_file'] == "") {
51        $objPage->arrErr = $objUpFile->checkEXISTS();
52    }
53   
54    if($objPage->arrErr['csv_file'] == "") {
55        // 一時ファイル名の取得
56        $filepath = $objUpFile->getTempFilePath('csv_file');
57        // エンコード
58        $enc_filepath = sfEncodeFile($filepath, CHAR_CODE, CSV_TEMP_DIR);
59        $fp = fopen($enc_filepath, "r");
60        $line = 0;      // 行数
61        $regist = 0;    // 登録数
62       
63        $objQuery = new SC_Query();
64        $objQuery->begin();
65       
66        while(!feof($fp) && !$err) {
67            $arrCSV = fgetcsv($fp, CSV_LINE_MAX);
68                       
69            // 行カウント
70            $line++;
71           
72            if($line <= 1) {
73                continue;
74            }           
75                           
76            // 項目数カウント
77            $max = count($arrCSV);
78           
79            // 項目数が1以下の場合は無視する
80            if($max <= 1) {
81                continue;           
82            }
83           
84            // 項目数チェック
85            if($max != $colmax) {
86                $objPage->arrCSVErr['blank'] = "※ 項目数が" . $max . "個検出されました。項目数は" . $colmax . "個になります。";
87                $err = true;
88            } else {
89                // シーケンス配列を格納する。
90                $objFormParam->setParam($arrCSV, true);
91                $arrRet = $objFormParam->getHashArray();
92                $objFormParam->setParam($arrRet);
93                // 入力値の変換
94                $objFormParam->convParam();
95                // <br>なしでエラー取得する。
96                $objPage->arrCSVErr = lfCheckError();
97            }
98           
99            // 入力エラーチェック
100            if(count($objPage->arrCSVErr) > 0) {
101                $objPage->tpl_errtitle = "■" . $line . "行目でエラーが発生しました。";
102                $objPage->arrParam = $objFormParam->getHashArray();
103                $err = true;
104            }
105           
106            if(!$err) {
107                lfRegistProduct($objQuery);
108                $regist++;
109            }
110        }
111        fclose($fp);
112       
113        if(!$err) {
114            $objQuery->commit();
115            $objPage->tpl_oktitle = "■" . $regist . "件のレコードを登録しました。";
116            // 商品件数カウント関数の実行
117            sfCategory_Count($objQuery);
118        } else {
119            $objQuery->rollback();
120        }
121    }
122    break;
123default:
124    break;
125}
126
127$objView->assignobj($objPage);
128$objView->display(MAIN_FRAME);
129
130//--------------------------------------------------------------------------------------------------------------------------
131
132/* ファイル情報の初期化 */
133function lfInitFile() {
134    global $objUpFile;
135    $objUpFile->addFile("CSVファイル", 'csv_file', array('csv'), CSV_SIZE, true, 0, 0, false);
136}
137
138/* パラメータ情報の初期化 */
139function lfInitParam() {
140    global $objFormParam;
141   
142    $objFormParam->addParam("フラグ(対応なし)", "dummy1");
143    $objFormParam->addParam("商品名", "name", STEXT_LEN, "KVa", array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
144    $objFormParam->addParam("モバイル用商品名(対応なし)", "dummy2");
145    $objFormParam->addParam("商品コード", "product_code", STEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK"));
146    $objFormParam->addParam("商品ID(対応なし)", "dummy3");
147    $objFormParam->addParam("商品ページID(対応なし)", "dummy1");
148    $objFormParam->addParam("実売価格", "price01", PRICE_LEN, "n", array("MAX_LENGTH_CHECK","NUM_CHECK"));
149    $objFormParam->addParam("表示価格", "price02", PRICE_LEN, "n", array("EXIST_CHECK","MAX_LENGTH_CHECK","NUM_CHECK"));
150    $objFormParam->addParam("消費税フラグ(対応なし)", "dummy4");
151    $objFormParam->addParam("送料(対応なし)", "dummy5");
152    $objFormParam->addParam("個別送料(対応なし)", "dummy6");
153    $objFormParam->addParam("注文ボタン(対応なし)", "dummy7");
154    $objFormParam->addParam("資料請求ボタン(対応なし)", "dummy8");
155    $objFormParam->addParam("問い合わせボタン(対応なし)", "dummy9");
156    $objFormParam->addParam("お勧めボタン(対応なし)", "dummy10");
157    $objFormParam->addParam("のし対応フラグ(対応なし)", "dummy11");
158    $objFormParam->addParam("在庫数", "stock", INT_LEN, "n", array("MAX_LENGTH_CHECK","NUM_CHECK"));
159    $objFormParam->addParam("項目選択肢(対応なし)", "dummy12");
160    $objFormParam->addParam("期間限定販売(対応なし)", "dummy13");
161    $objFormParam->addParam("説明文", "main_comment", LTEXT_LEN, "KVa", array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
162    $objFormParam->addParam("モバイル説明文(対応なし)", "dummy14");
163    $objFormParam->addParam("画像(対応なし)", "dummy15");
164    $objFormParam->addParam("楽天ディレクトリID(対応なし)", "dummy16");
165    $objFormParam->addParam("モバイル(対応なし)", "dummy17");
166}
167?>
Note: See TracBrowser for help on using the repository browser.