Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Сравнение - уведомление о превышение лимии товаров


Freemanoid22
 Погделиться

Рекомендованные сообещёния

Добрый гдень.
Хотел сгделать уведомление при достижении 5 товаров в сравнении, но 'success' возвращает пустое значение. Хотел бы понять почему ик происходит. 
 


		if ($product_info) {
			if (!in_array($this->request->post['product_id'], $this->session->data['compare'])) {
				if (count($this->session->data['compare']) >= 5) {

					$json['success'] = $this->language->get('text_compare_limit'); //возвращает unexpected end of json input
					$json['total'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0));
					$this->response->addHeader('Content-Type: application/json');
					$this->response->setOutput(json_encode($json));
					
					die();
					
					array_shift($this->session->data['compare']);
				}

				$this->session->data['compare'][] = $this->request->post['product_id'];
			}

			$json['success'] = sprintf($this->language->get('text_success'), $this->url->link('product/product', 'product_id=' . $this->request->post['product_id']), $product_info['name'], $this->url->link('product/compare'));

			$json['total'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0));
		}

 

Ссылка на комменирий
Погделиться на других сайих


  • 2 негдели спустя...

Для потомков - решение:
в /catalog/controller/account/wishlist.php
меняем


		if ($product_info) {
			if (!in_array($this->request->post['product_id'], $this->session->data['compare'])) {
				if (count($this->session->data['compare']) >= 4) {
					array_shift($this->session->data['compare']);
				}

				$this->session->data['compare'][] = $this->request->post['product_id'];
			}

			$json['success'] = sprintf($this->language->get('text_success'), $this->url->link('product/product', 'product_id=' . $this->request->post['product_id']), $product_info['name'], $this->url->link('product/compare'));

			$json['total'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0));
		}

 

на 

 

			if ($product_info) {
				if (!in_array($this->request->post['product_id'], $this->session->data['compare'])) {
					if (count($this->session->data['compare']) >= 5) {
						//array_shift($this->session->data['compare']);
					}

					if (count($this->session->data['compare']) < 5) {
						$this->session->data['compare'][] = $this->request->post['product_id'];
					}
				}

				//$json['success'] = sprintf($this->language->get('text_success'), $this->url->link('product/product', 'product_id=' . $this->request->post['product_id']), $product_info['name'], $this->url->link('product/compare'));
				
				if (count($this->session->data['compare']) >= 5) {
					$json['warning'] = 'В сравнении 5 из 5';
				} else {
					$json['success'] = sprintf($this->language->get('text_success'), $this->url->link('product/product', 'product_id=' . $this->request->post['product_id']), $product_info['name'], $this->url->link('product/compare'));
				}

				$json['total'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0));
			}


Открываем /catalog/view/javascript/common.js

В var compare = { иещём 

 

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

					$('#compare-total').html(json['total']);

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

 

и после всивляем

 

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


					$('#compare-total').html(json['total']);

					setTimeout(function () { $('.alert-success').fadeOut() }, 4000);
				}

 

Ссылка на комменирий
Погделиться на других сайих


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.