При создании интернет-магазина встретился с такой проблемой:
Не смог найти модуль для вывода корзины слева/справа для opencart 1.5.4
Единственно что более менее корректно работающее: http://www.opencart.com/index.php?route=extension/extension/info&extension_id=5971
Но и тут не всё просто, а именно, товар добавляется в корзину, но не отображается, а появляется только после перезагрузки страницы. Нашёл вот такой комментарий:
Im usuing opencart 1.5.4 and after WUNJO fix for reload in commons.js:
In catalog/view/javascript/commons.js add
"$(".box-content",sidecart).reload();" before last bracket } in function "reloadMiniCartContent(product_id)", these correct update or refresh page.
Cart reloads nicely on category list, nut it does not on product page i still need to refresh it there. I tried adding:
/*----side cart addition-----*/
reloadMiniCartContent(product_id);
in product.tpl in "if (json['success']{"function in exact the same place as in commons.js but it doeas not work.
With kwok fix for delete products it would work for opencart 1.5.4 if this one issue is done. Thx for any help you can provide.
Мой commons.js
Подскажите кто в коде силён, что куда дописывать?
$(document).ready(function() {
/* Search */
$('.button-search').bind('click', function() {
url = $('base').attr('href') + 'index.php?route=product/search';
var filter_name = $('input[name=\'filter_name\']').attr('value')
if (filter_name) {
url += '&filter_name=' + encodeURIComponent(filter_name);
}
location = url;
});
$('#header input[name=\'filter_name\']').keydown(function(e) {
if (e.keyCode == 13) {
url = $('base').attr('href') + 'index.php?route=product/search';
var filter_name = $('input[name=\'filter_name\']').attr('value')
if (filter_name) {
url += '&filter_name=' + encodeURIComponent(filter_name);
}
location = url;
}
});
/* Ajax Cart */
$("#cart").hover(
function () {
$('#cart .content').stop(true, true).show('slow');
$.ajax({
url: 'index.php?route=checkout/cart/update',
dataType: 'json',
success: function(json) {
if (json['output']) {
$('#cart .content').html(json['output']);
}
}
});
},
function () {
$('#cart .content').stop(true, true).hide('slow');
}
);
/* Mega Menu */
$('#menu ul > li > a + div').each(function(index, element) {
// IE6 & IE7 Fixes
if ($.browser.msie && ($.browser.version == 7 || $.browser.version == 6)) {
var category = $(element).find('a');
var columns = $(element).find('ul').length;
$(element).css('width', (columns * 143) + 'px');
$(element).find('ul').css('float', 'left');
}
var menu = $('#menu').offset();
var dropdown = $(this).parent().offset();
i = (dropdown.left + $(this).outerWidth()) - (menu.left + $('#menu').outerWidth());
if (i > 0) {
$(this).css('margin-left', '-' + (i + 5) + 'px');
}
});
// IE6 & IE7 Fixes
if ($.browser.msie) {
if ($.browser.version <= 6) {
$('#column-left + #column-right + #content, #column-left + #content').css('margin-left', '195px');
$('#column-right + #content').css('margin-right', '195px');
$('.box-category ul li a.active + ul').css('display', 'block');
}
if ($.browser.version <= 7) {
$('#menu > ul > li').bind('mouseover', function() {
$(this).addClass('active');
});
$('#menu > ul > li').bind('mouseout', function() {
$(this).removeClass('active');
});
}
}
$('.success img, .warning img, .attention img, .information img').live('click', function() {
$(this).parent().fadeOut('slow', function() {
$(this).remove();
});
});
});
function addToCart(product_id) {
$.ajax({
url: 'index.php?route=checkout/cart/update',
type: 'post',
data: 'product_id=' + product_id,
dataType: 'json',
success: function(json) {
$('.success, .warning, .attention, .information, .error').remove();
if (json['redirect']) {
location = json['redirect'];
}
if (json['error']) {
if (json['error']['warning']) {
$('#notification').html('<div class="warning" style="display: none;">' + json['error']['warning'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');
$('.warning').fadeIn('slow');
$('html, body').animate({ scrollTop: 0 }, 'slow');
}
}
if (json['success']) {
$('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');
$('.success').fadeIn('slow');
$('#cart_total').html(json['total']);
$('html, body').animate({ scrollTop: 0 }, 'slow');
}
}
});
}
function removeCart(key) {
$.ajax({
url: 'index.php?route=checkout/cart/update',
type: 'post',
data: 'remove=' + key,
dataType: 'json',
success: function(json) {
$('.success, .warning, .attention, .information').remove();
if (json['output']) {
$('#cart_total').html(json['total']);
$('#cart .content').html(json['output']);
}
}
});
}
function removeVoucher(key) {
$.ajax({
url: 'index.php?route=checkout/cart/update',
type: 'post',
data: 'voucher=' + key,
dataType: 'json',
success: function(json) {
$('.success, .warning, .attention, .information').remove();
if (json['output']) {
$('#cart_total').html(json['total']);
$('#cart .content').html(json['output']);
}
}
});
}
function addToWishList(product_id) {
$.ajax({
url: 'index.php?route=account/wishlist/update',
type: 'post',
data: 'product_id=' + product_id,
dataType: 'json',
success: function(json) {
$('.success, .warning, .attention, .information').remove();
if (json['success']) {
$('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');
$('.success').fadeIn('slow');
$('#wishlist_total').html(json['total']);
$('html, body').animate({ scrollTop: 0 }, 'slow');
}
}
});
}
function addToCompare(product_id) {
$.ajax({
url: 'index.php?route=product/compare/update',
type: 'post',
data: 'product_id=' + product_id,
dataType: 'json',
success: function(json) {
$('.success, .warning, .attention, .information').remove();
if (json['success']) {
$('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');
$('.success').fadeIn('slow');
$('#compare_total').html(json['total']);
$('html, body').animate({ scrollTop: 0 }, 'slow');
}
}
});
}