Опции

2015-11-14T12:07:08+03:00 2015-11-15T12:40:24+03:00
0
Пользователи
0
Новичок
Делаю калькулятор из опций. Опции выводятся в виде изображений, но бяка в том, что при выборе опции, меняется главное фото товара. Как убрать вывод фото опций на главное фото при выборе?
Или как сделать, чтоб изображения выбранной опции выводилось в отдельном модуле?
Посоветуйте модуль для создания связанных опций.
Пользователи
+ 6
Активный участник
ссылку на сайт
Пользователи
+ 6
Активный участник
За смену изображения отвечает файл catalog/view/javascript/options_boost.js
Пользователи
0
Новичок
/* configurable settings */
// IF YOU WANT SWATCH IMAGES, USE THE OPENCART BUILT-IN SWATCH OPTION BY SETTING YOUR OPTION TYPE IN OPENCART TO "IMAGE".
// THEN ASSIGN THE SAME IMAGE USED FOR SWATCH TO THE OPTIONS BOOST IMAGE IN THE PRODUCT EDIT AREA.
// THAT WILL MAKE IT SWAP THE MAIN IMAGE WHEN CLICKED.

/* Theme Settings */
var img = '#main-image'; // The main image id

var origSrc = '';
var origTitle = '';
var origAlt = '';
var origPopup = '';

if (!window.console) {var console = {};}
if (!console.log) {console.log = function() {};}

jQuery(document).ready(function(){
console.log('Options Boost: Initialized');

// Store original image source
origSrc = jQuery(img).attr('src');
origTitle = jQuery(img).attr('title');
origAlt = jQuery(img).attr('alt');
origPopup = jQuery(img).parent().attr('href');

if (jQuery(img).length == 0) {
console.log('img id "'+img+'" not found');
}

//jQuery(':input[name^="option"]').change(function(){
jQuery(':input[name^="option"][type=\'checkbox\']:checked, :input[type=\'hidden\'], :input[name^="option"][type=\'radio\'], select[name^="option"]').change(function(){
obUpdate(jQuery(this));
});

// Force a change on load to support mods like default product options and any "onload" adjustments
jQuery('select[name^="option"] :selected').change();
jQuery('input[name^="option"][type=radio]:checked').change();
jQuery('input[name^="option"][type=checkbox]:checked').change();
});

function getCookie(name) {
name += '=';
var parts = document.cookie.split(/;\s*/);
for (var i = 0; i < parts.length; i++)
{
var part = parts[i];
if (part.indexOf(name) == 0)
return part.substring(name.length)
}
return null;
}

function obUpdate($this) {
console.log('Options Boost: obUpdate Called by '+jQuery($this).attr('name'));

// Get Type for determining checked/unchecked for checkbox
$checked = true;
if ($this.is('input:checkbox') && !$this.is(':checked')) {
$checked = false;
}

// Set variables...
var option_id = $this.attr('id');
var option_name = $this.attr('name');
var option_val = $this.val();

// Remove existing option info
jQuery('#option_info').remove();
jQuery('.ob_ajax_error').remove();

//if (jQuery(option).val()) {
if (option_val && $checked) {

if (getCookie('isAceshop') == '1') {
var ajaxurl = 'index.php?option=com_aceshop&format=raw&tmpl=component&route=produc
t/product/updateImage';
} else {
var ajaxurl = 'index.php?route=product/product/updateImage';
}

// ajax lookup
jQuery.ajax({
type: 'post',
url: ajaxurl,
dataType: 'json',
data: jQuery(':input[name^="option"][type=\'checkbox\']:checked, :input[type=\'hidden\'], :input[name^="option"][type=\'radio\']:checked, select[name^="option"]').serialize() + '&option_value_id='+option_val,
beforeSend: function() {
if (getCookie('isAceshop') == '1') {
$this.after('<img class="ob_loading" src="components/com_aceshop/opencart/catalog/view/javascript/ajax_load_sm.g
if" alt=""/>');
} else {
$this.after('<img class="ob_loading" src="catalog/view/javascript/ajax_load_sm.gif" alt=""/>');
}
},
success: function (data) {

jQuery.each(data, function(key, val) {
console.log(key+':'+val);
});

// Update the main image with the new image.
var swatch = data.ob_swatch;
var thumb = data.ob_thumb;
var popup = data.ob_popup;
var info = data.ob_info;
var stock = data.quantity;
var name = data.name;

// Swap Image if exists...
if (thumb) {
jQuery(img).attr('src', thumb);
jQuery(img).attr('title', name);
jQuery(img).attr('alt', name);
jQuery(img).parent().attr('href', popup);
} else { //revert back to main if image not exists
jQuery(img).attr('src', origSrc);
jQuery(img).attr('title', origTitle);
jQuery(img).attr('title', origAlt);
jQuery(img).parent().attr('href', origPopup);
}

// Add under main image or popup
if (info) {
xinfo = info.replace("~~", "");
if (info.indexOf("~~") != -1) { alert(xinfo); }
jQuery(img).parent().after('<p id="option_info">'+xinfo+'</p>');

}

},
error: function(xhr, ajaxOptions, thrownError) {
//alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
console.log('Options Boost: Ajax Lookup Error. Please try again.');
},
complete: function() {
jQuery('.ob_loading').remove();
}
});

} else {
jQuery(img).attr('src', origSrc);
jQuery(img).attr('title', origTitle);
jQuery(img).attr('title', origAlt);
jQuery(img).parent().attr('href', origPopup);
}
}
Пользователи
0
Новичок
я не понимаю в скриптах) что тут заремировать можно, чтоб не выводились изображения выбираемых опций на главное изображение?
 
Доступ закрыт.
  • Вам запрещено отвечать в темах данного форума.