Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Как вывести 2 корзины в шапке?


Recommended Posts

Всем привет, на сайте в header есть 2 разных меню - мобильное и десктопное, в каждом из меню находится корзина - из-за этого есть дублированные id(оба id="cart". Как изменить ID второй корзины(допустим id="cartmobile")?

Надіслати
Поділитися на інших сайтах


Только что, kJlukOo сказал:

тплка корзины лежит в common/cart.tpl

Это понятно, я конечно могу продублировать tpl'ку, но тогда все js скрипты на сайте у второй корзины не будут работать.

Надіслати
Поділитися на інших сайтах


11 минут назад, AleninK сказал:

но тогда все js скрипты на сайте у второй корзины не будут работать.

Всё верно. Все скрипты нужно будет дописывать и для второй корзины

Надіслати
Поділитися на інших сайтах

14 минут назад, iglin сказал:

Всё верно. Все скрипты нужно будет дописывать и для второй корзины

Я так понимаю кроме скриптов самой корзины, нужно будет переписывать еще и скрипты которые работает cart.click при нажатии на товар?

Я нашел в common.js скрипт отвечающий за корзину - // Cart add remove functions, в целом по логике там понятно что просто можно взять и переписать idшники переменных cart\voucher которые работают по ajax. Но не нашел где правятся скрипты которые работают при клике на товар. Допустим я захожу на старницу каталога, нажимаю на кнопку добавить в корзину - и скрипт отрабатывает только в старую корзину, на новой приходится перезагружать.

Т.е при клике на кнопку добавления товара в каталоге -

<button class="product-button-cash" type="button" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span></button>

Т.е сделать условие в во всех шаблонах где есть эта кнопка с событием cart.add? Что если экран выше стольки-то пикселей - отдаем button с переменной onclick="cartmobile.add, в ином случае тот который я описал выше в коде?

Змінено користувачем AleninK
r
Надіслати
Поділитися на інших сайтах


На сколько я помню стандартно функция cart.add так же в common.js находится

Надіслати
Поділитися на інших сайтах

7 минут назад, iglin сказал:

На сколько я помню стандартно функция cart.add так же в common.js находится

 

Я так понимаю вот она

var cart = {
	'add': function(product_id, quantity) {
		$.ajax({
			url: 'index.php?route=checkout/cart/add',
			type: 'post',
			data: 'product_id=' + product_id + '&quantity=' + (typeof(quantity) != 'undefined' ? quantity : 1),
			dataType: 'json',
			beforeSend: function() {
				$('#cart > button').button('loading');
			},
			complete: function() {
				$('#cart > button').button('reset');
			},
			success: function(json) {
				$('.alert, .text-danger').remove();

				if (json['redirect']) {
					location = json['redirect'];
				}

				if (json['success']) {
					$('#content').parent().before('<div class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + ' <button type="button" class="close" data-dismiss="alert">×</button></div>');

					// Need to set timeout otherwise it wont update the total
					setTimeout(function () {
						$('#cart > button').html('<span id="cart-total"><i class="fa fa-shopping-cart"></i> ' + json['total'] + '</span>');
					}, 100);

					$('html, body').animate({ scrollTop: 0 }, 'slow');

					$('#cart > ul').load('index.php?route=common/cart/info ul li');
				}
			},
			error: function(xhr, ajaxOptions, thrownError) {
				alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
			}
		});
	},

, но как сделать так, что бы она передавала разные id в корзину если нажимают с мобильной версии и с desktop? Создать новую переменную cart-mobile и отдавать её в зависимости от экрана? Или можно как-то создать условие внутри самой переменной карт и записать к #cart еще одну переменную #cartmobile

Змінено користувачем AleninK
Надіслати
Поділитися на інших сайтах


2 минуты назад, AleninK сказал:

отдавать её в зависимости от экрана?

Нет. Пререрисовывать не только #cart, но и вашу новую корзину, какой вы её там новый id зададите. 

Надіслати
Поділитися на інших сайтах

1 минуту назад, iglin сказал:

Нет. Пререрисовывать не только #cart, но и вашу новую корзину, какой вы её там новый id зададите. 

Я её перерисовал, создал cartmobile.tpl, но в чём суть, она выводится в мобильном меню, но не работает. Т.к в других шаблонах, допустим product.tpl - кнопка с переменной onclick.cart.add - ссылается именно на переменную #cart - т.е в каждом шаблоне условие делать? Или всё это чуть и правится только в common.js?

Надіслати
Поділитися на інших сайтах


Самый простейший способ это просто продублировать всё. Тоесть - 

$('#cart > button').button('loading');
$('#cart2 > button').button('loading');

ну и так далее по аналогии. 

 

 

Надіслати
Поділитися на інших сайтах

4 минуты назад, iglin сказал:

Самый простейший способ это просто продублировать всё. Тоесть - 

$('#cart > button').button('loading');
$('#cart2 > button').button('loading');

ну и так далее по аналогии. 

 

 

Окей, спасибо. Попробую

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.