Changeset 18432 for branches/version-2/data/class/pages/admin/products/LC_Page_Admin_Products_UploadCSVCategory.php
- Timestamp:
- 2009/12/07 15:08:06 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2/data/class/pages/admin/products/LC_Page_Admin_Products_UploadCSVCategory.php
r17048 r18432 108 108 // レコード数を得る 109 109 $rec_count = $this->lfCSVRecordCount($enc_filepath); 110 if ($rec_count === false) { 111 $err = false; 112 $arrErr['bad_file_pointer'] = "※ 不正なファイルポインタが検出されました"; 113 } 110 114 111 115 $fp = fopen($enc_filepath, "r"); … … 161 165 162 166 if (!$err) { 163 $this->lfRegistProduct($objQuery, $ line);167 $this->lfRegistProduct($objQuery, $rec_count, $line); 164 168 $regist++; 165 169 } … … 225 229 $this->objFormParam->addParam("親カテゴリID","parent_category_id",INT_LEN,"n",array("MAX_LENGTH_CHECK","NUM_CHECK")); 226 230 } 227 231 228 232 /** 229 233 * カテゴリ登録を行う. 230 234 * 231 235 * @param SC_Query $objQuery SC_Queryインスタンス 232 * @param string|integer $ line 処理中の行数233 * @return void 234 */ 235 function lfRegistProduct($objQuery, $ line = "") {236 * @param string|integer $rec_count 処理総数|integer $line 処理中の行数 237 * @return void 238 */ 239 function lfRegistProduct($objQuery, $rec_count, $line = "") { 236 240 $objDb = new SC_Helper_DB_Ex(); 237 241 $arrRet = $this->objFormParam->getHashArray(); 238 242 239 243 //カテゴリID 240 244 if ($arrRet['category_id'] == 0) { … … 246 250 $update = true; 247 251 } 248 252 249 253 // カテゴリ名 250 254 $sqlval['category_name'] = $arrRet['category_name']; 255 //表示ランク(上から順に表示順を自動割り当て) 256 $sqlval['rank'] = ($rec_count + 1) - $line ; 251 257 252 258 // 親カテゴリID、レベル … … 259 265 $sqlval['level'] = $parent_level + 1; 260 266 } 261 267 262 268 // その他 263 269 $time = date("Y-m-d H:i:s"); … … 268 274 $sqlval['update_date'] = $time; 269 275 $sqlval['creator_id'] = $_SESSION['member_id']; 270 276 271 277 // 更新 272 278 if ($update) { … … 274 280 $where = "category_id = ?"; 275 281 $objQuery->update("dtb_category", $sqlval, $where, array($sqlval['category_id'])); 276 282 277 283 // 新規登録 278 284 } else { 279 285 echo "INSERT "; 280 286 $sqlval['create_date'] = $time; 281 // ランク282 if ($sqlval['parent_category_id'] == 0) {283 // ROOT階層で最大のランクを取得する。284 $where = "parent_category_id = ?";285 $sqlval['rank'] = $objQuery->max("dtb_category", "rank", $where, array($sqlval['parent_category_id'])) + 1;286 } else {287 // 親のランクを自分のランクとする。288 $where = "category_id = ?";289 $sqlval['rank'] = $objQuery->get("dtb_category", "rank", $where, array($sqlval['parent_category_id']));290 // 追加レコードのランク以上のレコードを一つあげる。291 $sqlup = "UPDATE dtb_category SET rank = (rank + 1) WHERE rank >= ?";292 $objQuery->exec($sqlup, array($sqlval['rank']));293 }294 287 $objQuery->insert("dtb_category", $sqlval); 295 288 } … … 306 299 $objErr = new SC_CheckError($arrRet); 307 300 $objErr->arrErr = $this->objFormParam->checkError(false); 308 301 309 302 // 親カテゴリID設定 310 303 if ($arrRet['parent_category_id'] == 0) { … … 313 306 $parent_category_id = $arrRet['parent_category_id']; 314 307 } 315 308 316 309 // 存在する親カテゴリIDかチェック 317 310 if (count($objErr->arrErr) == 0) { … … 323 316 } 324 317 } 325 318 326 319 // 階層チェック 327 320 if (!isset($objErr->arrErr['category_name']) && !isset($objErr->arrErr['parent_category_id'])) { … … 338 331 if (empty($arrCat)) { 339 332 $arrCat = array(array("category_id" => "", "category_name" => "")); 333 // 編集中のレコード以外に同じ名称が存在する場合 334 }elseif ($arrCat[0]['category_id'] != $arrRet['category_id'] && $arrCat[0]['category_name'] == $arrRet['category_name']) { 335 $objErr->arrErr['category_name'] = "※ 既に同じ内容の登録が存在します。\n"; 340 336 } 341 // 編集中のレコード以外に同じ名称が存在する場合342 if ($arrCat[0]['category_id'] != $arrRet['category_id'] && $arrCat[0]['category_name'] == $_POST['category_name']) {343 $objErr->arrErr['category_name'] = "※ 既に同じ内容の登録が存在します。<br>";344 }345 337 } 346 338 return $objErr->arrErr; … … 351 343 * 352 344 * @param string $file_name ファイルパス 353 * @return integer CSV のカウント数345 * @return mixed CSV のカウント数; $file_name が無効な場合は false 354 346 */ 355 347 function lfCSVRecordCount($file_name) { 356 348 $count = 0; 357 349 $fp = fopen($file_name, "r"); 358 while(!feof($fp)) { 359 $arrCSV = fgetcsv($fp, CSV_LINE_MAX); 360 $count++; 361 } 362 350 if ($fp !== false) { 351 while(!feof($fp)) { 352 $arrCSV = fgetcsv($fp, CSV_LINE_MAX); 353 $count++; 354 } 355 } else { 356 return false; 357 } 363 358 return $count-1; 364 359 }
Note: See TracChangeset
for help on using the changeset viewer.