- Timestamp:
- 2013/08/15 08:46:23 (13 years ago)
- Location:
- branches/version-2_13-dev
- Files:
-
- 8 edited
-
data/Smarty/templates/admin/order/product_select.tpl (modified) (4 diffs)
-
data/Smarty/templates/default/products/detail.tpl (modified) (1 diff)
-
data/Smarty/templates/default/products/list.tpl (modified) (1 diff)
-
data/Smarty/templates/sphone/products/detail.tpl (modified) (1 diff)
-
data/class/pages/admin/order/LC_Page_Admin_Order_ProductSelect.php (modified) (1 diff)
-
data/class/pages/products/LC_Page_Products_Detail.php (modified) (1 diff)
-
data/class/pages/products/LC_Page_Products_List.php (modified) (1 diff)
-
html/js/eccube.js (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_13-dev/data/Smarty/templates/admin/order/product_select.tpl
r23063 r23065 60 60 61 61 if(!class1_id){ 62 err_text = productsClassCategories[product_id]['__unselected2']['#0']['stock_find'] ? '' : '只今品切れ中です';62 err_text = eccube.productsClassCategories[product_id]['__unselected2']['#0']['stock_find'] ? '' : '只今品切れ中です'; 63 63 }else if(class1_id && !class2_id){ 64 err_text = productsClassCategories[product_id][class1_id]['#0']['stock_find'] ? '' : '只今品切れ中です';64 err_text = eccube.productsClassCategories[product_id][class1_id]['#0']['stock_find'] ? '' : '只今品切れ中です'; 65 65 }else{ 66 err_text = productsClassCategories[product_id][class1_id]['#' + class2_id]['stock_find'] ? '' : '只今品切れ中です';66 err_text = eccube.productsClassCategories[product_id][class1_id]['#' + class2_id]['stock_find'] ? '' : '只今品切れ中です'; 67 67 } 68 68 … … 98 98 99 99 // 規格2に選択肢を割り当てる 100 classcats = productsClassCategories[product_id][sele1.value];100 classcats = eccube.productsClassCategories[product_id][sele1.value]; 101 101 i = 0; 102 102 for (var classcat_id2_key in classcats) { … … 117 117 classcat_id1 = form.classcategory_id1.value; 118 118 classcat_id2 = form.classcategory_id2 ? form.classcategory_id2.value : ''; 119 classcat2 = productsClassCategories[product_id][classcat_id1]['#' + classcat_id2];119 classcat2 = eccube.productsClassCategories[product_id][classcat_id1]['#' + classcat_id2]; 120 120 // 商品規格 121 121 eleDynamic = document.getElementById('product_class_id' + product_id); … … 128 128 } else { 129 129 // 規格が1つのみの場合 130 classcat1 = productsClassCategories[product_id][classcat_id1]['#0'];130 classcat1 = eccube.productsClassCategories[product_id][classcat_id1]['#0']; 131 131 eleDynamic.value = classcat1.product_class_id; 132 132 } -
branches/version-2_13-dev/data/Smarty/templates/default/products/detail.tpl
r23063 r23065 30 30 var $sele1 = $form.find('select[name=classcategory_id1]'); 31 31 var $sele2 = $form.find('select[name=classcategory_id2]'); 32 setClassCategories($form, product_id, $sele1, $sele2, classcat_id2_selected);32 eccube.common.setClassCategories($form, product_id, $sele1, $sele2, classcat_id2_selected); 33 33 } 34 34 $(document).ready(function() { -
branches/version-2_13-dev/data/Smarty/templates/default/products/list.tpl
r23064 r23065 27 27 var $sele1 = $form.find('select[name=classcategory_id1]'); 28 28 var $sele2 = $form.find('select[name=classcategory_id2]'); 29 setClassCategories($form, product_id, $sele1, $sele2, classcat_id2_selected);29 eccube.common.setClassCategories($form, product_id, $sele1, $sele2, classcat_id2_selected); 30 30 } 31 31 // 並び順を変更 -
branches/version-2_13-dev/data/Smarty/templates/sphone/products/detail.tpl
r23058 r23065 29 29 var $sele1 = $form.find('select[name=classcategory_id1]'); 30 30 var $sele2 = $form.find('select[name=classcategory_id2]'); 31 setClassCategories($form, product_id, $sele1, $sele2, classcat_id2_selected);31 eccube.common.setClassCategories($form, product_id, $sele1, $sele2, classcat_id2_selected); 32 32 } 33 33 $(function(){ -
branches/version-2_13-dev/data/class/pages/admin/order/LC_Page_Admin_Order_ProductSelect.php
r22926 r23065 161 161 function getTplJavascript(&$objProduct) 162 162 { 163 return ' productsClassCategories = ' . SC_Utils_Ex::jsonEncode($objProduct->classCategories) . '; ';163 return 'eccube.productsClassCategories = ' . SC_Utils_Ex::jsonEncode($objProduct->classCategories) . '; '; 164 164 } 165 165 -
branches/version-2_13-dev/data/class/pages/products/LC_Page_Products_Detail.php
r23055 r23065 148 148 } 149 149 150 $this->tpl_javascript .= ' classCategories = ' . SC_Utils_Ex::jsonEncode($objProduct->classCategories[$product_id]) . ';';150 $this->tpl_javascript .= 'eccube.classCategories = ' . SC_Utils_Ex::jsonEncode($objProduct->classCategories[$product_id]) . ';'; 151 151 $this->tpl_javascript .= 'function lnOnLoad() 152 152 {' . $this->js_lnOnload . '}'; -
branches/version-2_13-dev/data/class/pages/products/LC_Page_Products_List.php
r23064 r23065 539 539 $this->productStatus = $this->arrProducts['productStatus']; 540 540 unset($this->arrProducts['productStatus']); 541 $this->tpl_javascript .= ' varproductsClassCategories = ' . SC_Utils_Ex::jsonEncode($objProduct->classCategories) . ';';541 $this->tpl_javascript .= 'eccube.productsClassCategories = ' . SC_Utils_Ex::jsonEncode($objProduct->classCategories) . ';'; 542 542 if (SC_Display_Ex::detectDevice() === DEVICE_TYPE_PC) { 543 543 //onloadスクリプトを設定. 在庫ありの商品のみ出力する -
branches/version-2_13-dev/html/js/eccube.js
r23064 r23065 21 21 */ 22 22 23 $(function() {24 // 規格1選択時25 $('select[name=classcategory_id1]')26 .change(function() {27 var $form = $(this).parents('form');28 var product_id = $form.find('input[name=product_id]').val();29 var $sele1 = $(this);30 var $sele2 = $form.find('select[name=classcategory_id2]');31 32 // 規格1のみの場合33 if (!$sele2.length) {34 checkStock($form, product_id, $sele1.val(), '0');35 // 規格2ありの場合36 } else {37 setClassCategories($form, product_id, $sele1, $sele2);38 }39 });40 41 // 規格2選択時42 $('select[name=classcategory_id2]')43 .change(function() {44 var $form = $(this).parents('form');45 var product_id = $form.find('input[name=product_id]').val();46 var $sele1 = $form.find('select[name=classcategory_id1]');47 var $sele2 = $(this);48 checkStock($form, product_id, $sele1.val(), $sele2.val());49 });50 });51 /**52 * 規格2のプルダウンを設定する.53 */54 function setClassCategories($form, product_id, $sele1, $sele2, selected_id2) {55 if ($sele1 && $sele1.length) {56 var classcat_id1 = $sele1.val() ? $sele1.val() : '';57 if ($sele2 && $sele2.length) {58 // 規格2の選択肢をクリア59 $sele2.children().remove();60 61 var classcat2;62 63 // 商品一覧時64 if (typeof productsClassCategories != 'undefined') {65 classcat2 = productsClassCategories[product_id][classcat_id1];66 }67 // 詳細表示時68 else {69 classcat2 = classCategories[classcat_id1];70 }71 72 // 規格2の要素を設定73 for (var key in classcat2) {74 var id = classcat2[key]['classcategory_id2'];75 var name = classcat2[key]['name'];76 var option = $('<option />').val(id ? id : '').text(name);77 if (id == selected_id2) {78 option.attr('selected', true);79 }80 $sele2.append(option);81 }82 checkStock($form, product_id, $sele1.val() ? $sele1.val() : '__unselected2',83 $sele2.val() ? $sele2.val() : '');84 }85 }86 }87 88 /**89 * 規格の選択状態に応じて, フィールドを設定する.90 */91 function checkStock($form, product_id, classcat_id1, classcat_id2) {92 93 classcat_id2 = classcat_id2 ? classcat_id2 : '';94 95 var classcat2;96 97 // 商品一覧時98 if (typeof productsClassCategories != 'undefined') {99 classcat2 = productsClassCategories[product_id][classcat_id1]['#' + classcat_id2];100 }101 // 詳細表示時102 else {103 classcat2 = classCategories[classcat_id1]['#' + classcat_id2];104 }105 106 // 商品コード107 var $product_code_default = $form.find('[id^=product_code_default]');108 var $product_code_dynamic = $form.find('[id^=product_code_dynamic]');109 if (classcat2110 && typeof classcat2['product_code'] != 'undefined') {111 $product_code_default.hide();112 $product_code_dynamic.show();113 $product_code_dynamic.text(classcat2['product_code']);114 } else {115 $product_code_default.show();116 $product_code_dynamic.hide();117 }118 119 // 在庫(品切れ)120 var $cartbtn_default = $form.find('[id^=cartbtn_default]');121 var $cartbtn_dynamic = $form.find('[id^=cartbtn_dynamic]');122 if (classcat2 && classcat2['stock_find'] === false) {123 124 $cartbtn_dynamic.text('申し訳ございませんが、只今品切れ中です。').show();125 $cartbtn_default.hide();126 } else {127 $cartbtn_dynamic.hide();128 $cartbtn_default.show();129 }130 131 // 通常価格132 var $price01_default = $form.find('[id^=price01_default]');133 var $price01_dynamic = $form.find('[id^=price01_dynamic]');134 if (classcat2135 && typeof classcat2['price01'] != 'undefined'136 && String(classcat2['price01']).length >= 1) {137 138 $price01_dynamic.text(classcat2['price01']).show();139 $price01_default.hide();140 } else {141 $price01_dynamic.hide();142 $price01_default.show();143 }144 145 // 販売価格146 var $price02_default = $form.find('[id^=price02_default]');147 var $price02_dynamic = $form.find('[id^=price02_dynamic]');148 if (classcat2149 && typeof classcat2['price02'] != 'undefined'150 && String(classcat2['price02']).length >= 1) {151 152 $price02_dynamic.text(classcat2['price02']).show();153 $price02_default.hide();154 } else {155 $price02_dynamic.hide();156 $price02_default.show();157 }158 159 // ポイント160 var $point_default = $form.find('[id^=point_default]');161 var $point_dynamic = $form.find('[id^=point_dynamic]');162 if (classcat2163 && typeof classcat2['point'] != 'undefined'164 && String(classcat2['point']).length >= 1) {165 166 $point_dynamic.text(classcat2['point']).show();167 $point_default.hide();168 } else {169 $point_dynamic.hide();170 $point_default.show();171 }172 173 // 商品規格174 var $product_class_id_dynamic = $form.find('[id^=product_class_id]');175 if (classcat2176 && typeof classcat2['product_class_id'] != 'undefined'177 && String(classcat2['product_class_id']).length >= 1) {178 179 $product_class_id_dynamic.val(classcat2['product_class_id']);180 } else {181 $product_class_id_dynamic.val('');182 }183 }184 185 23 (function( window, undefined ){ 186 24 … … 520 358 }; 521 359 360 /** 361 * 規格2のプルダウンを設定する. 362 */ 363 common.setClassCategories = function($form, product_id, $sele1, $sele2, selected_id2) { 364 if ($sele1 && $sele1.length) { 365 var classcat_id1 = $sele1.val() ? $sele1.val() : ''; 366 if ($sele2 && $sele2.length) { 367 // 規格2の選択肢をクリア 368 $sele2.children().remove(); 369 370 var classcat2; 371 372 // 商品一覧時 373 if (eccube.productsClassCategories !== undefined) { 374 classcat2 = eccube.productsClassCategories[product_id][classcat_id1]; 375 } 376 // 詳細表示時 377 else { 378 classcat2 = eccube.classCategories[classcat_id1]; 379 } 380 381 // 規格2の要素を設定 382 for (var key in classcat2) { 383 var id = classcat2[key]['classcategory_id2']; 384 var name = classcat2[key]['name']; 385 var option = $('<option />').val(id ? id : '').text(name); 386 if (id == selected_id2) { 387 option.attr('selected', true); 388 } 389 $sele2.append(option); 390 } 391 eccube.common.checkStock($form, product_id, $sele1.val() ? $sele1.val() : '__unselected2', 392 $sele2.val() ? $sele2.val() : ''); 393 } 394 } 395 }; 396 397 /** 398 * 規格の選択状態に応じて, フィールドを設定する. 399 */ 400 common.checkStock = function($form, product_id, classcat_id1, classcat_id2) { 401 402 classcat_id2 = classcat_id2 ? classcat_id2 : ''; 403 404 var classcat2; 405 406 // 商品一覧時 407 if (typeof eccube.productsClassCategories != 'undefined') { 408 classcat2 = eccube.productsClassCategories[product_id][classcat_id1]['#' + classcat_id2]; 409 } 410 // 詳細表示時 411 else { 412 classcat2 = eccube.classCategories[classcat_id1]['#' + classcat_id2]; 413 } 414 415 // 商品コード 416 var $product_code_default = $form.find('[id^=product_code_default]'); 417 var $product_code_dynamic = $form.find('[id^=product_code_dynamic]'); 418 if (classcat2 419 && typeof classcat2['product_code'] != 'undefined') { 420 $product_code_default.hide(); 421 $product_code_dynamic.show(); 422 $product_code_dynamic.text(classcat2['product_code']); 423 } else { 424 $product_code_default.show(); 425 $product_code_dynamic.hide(); 426 } 427 428 // 在庫(品切れ) 429 var $cartbtn_default = $form.find('[id^=cartbtn_default]'); 430 var $cartbtn_dynamic = $form.find('[id^=cartbtn_dynamic]'); 431 if (classcat2 && classcat2['stock_find'] === false) { 432 433 $cartbtn_dynamic.text('申し訳ございませんが、只今品切れ中です。').show(); 434 $cartbtn_default.hide(); 435 } else { 436 $cartbtn_dynamic.hide(); 437 $cartbtn_default.show(); 438 } 439 440 // 通常価格 441 var $price01_default = $form.find('[id^=price01_default]'); 442 var $price01_dynamic = $form.find('[id^=price01_dynamic]'); 443 if (classcat2 444 && typeof classcat2['price01'] != 'undefined' 445 && String(classcat2['price01']).length >= 1) { 446 447 $price01_dynamic.text(classcat2['price01']).show(); 448 $price01_default.hide(); 449 } else { 450 $price01_dynamic.hide(); 451 $price01_default.show(); 452 } 453 454 // 販売価格 455 var $price02_default = $form.find('[id^=price02_default]'); 456 var $price02_dynamic = $form.find('[id^=price02_dynamic]'); 457 if (classcat2 458 && typeof classcat2['price02'] != 'undefined' 459 && String(classcat2['price02']).length >= 1) { 460 461 $price02_dynamic.text(classcat2['price02']).show(); 462 $price02_default.hide(); 463 } else { 464 $price02_dynamic.hide(); 465 $price02_default.show(); 466 } 467 468 // ポイント 469 var $point_default = $form.find('[id^=point_default]'); 470 var $point_dynamic = $form.find('[id^=point_dynamic]'); 471 if (classcat2 472 && typeof classcat2['point'] != 'undefined' 473 && String(classcat2['point']).length >= 1) { 474 475 $point_dynamic.text(classcat2['point']).show(); 476 $point_default.hide(); 477 } else { 478 $point_dynamic.hide(); 479 $point_default.show(); 480 } 481 482 // 商品規格 483 var $product_class_id_dynamic = $form.find('[id^=product_class_id]'); 484 if (classcat2 485 && typeof classcat2['product_class_id'] != 'undefined' 486 && String(classcat2['product_class_id']).length >= 1) { 487 488 $product_class_id_dynamic.val(classcat2['product_class_id']); 489 } else { 490 $product_class_id_dynamic.val(''); 491 } 492 }; 493 522 494 // 名前空間の重複を防ぐ 523 495 if (window.eccube === undefined) { … … 526 498 // グローバルに使用できるようにする 527 499 window.eccube.common = common; 500 501 /** 502 * Initialize. 503 */ 504 $(function() { 505 // 規格1選択時 506 $('select[name=classcategory_id1]') 507 .change(function() { 508 var $form = $(this).parents('form'); 509 var product_id = $form.find('input[name=product_id]').val(); 510 var $sele1 = $(this); 511 var $sele2 = $form.find('select[name=classcategory_id2]'); 512 513 // 規格1のみの場合 514 if (!$sele2.length) { 515 eccube.common.checkStock($form, product_id, $sele1.val(), '0'); 516 // 規格2ありの場合 517 } else { 518 eccube.common.setClassCategories($form, product_id, $sele1, $sele2); 519 } 520 }); 521 522 // 規格2選択時 523 $('select[name=classcategory_id2]') 524 .change(function() { 525 var $form = $(this).parents('form'); 526 var product_id = $form.find('input[name=product_id]').val(); 527 var $sele1 = $form.find('select[name=classcategory_id1]'); 528 var $sele2 = $(this); 529 eccube.common.checkStock($form, product_id, $sele1.val(), $sele2.val()); 530 }); 531 }); 528 532 })(window); 529
Note: See TracChangeset
for help on using the changeset viewer.
