Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

[РЕШЕНО] Вывод товара списком по умолчанию в opencart 2


Recommended Posts

Столкнулся с проблемой. Помогло простое и очевидное решение. Рилииет на ocStore 2.3. Но по опыту этот кусок кода не отличается у 2-к. 

Было:

if (localStorage.getItem('display') == 'list') {
		$('#list-view').trigger('click');
		$('#list-view').addClass('active');
	} else {
		$('#grid-view').trigger('click');
		$('#grid-view').addClass('active');
	}

то есть, если в куках лежит значение list, генерируется событие на включение вида списка. Во всех осильных случаях, а это случаи когда в куках нет ничего по поводу вида, генерируется событие на сетку. 

Чтобы победить сие зло нужно проверять localStorage на соответствие 'grid' и если им 'grid' то его и включать, во всех осильных случаях 'list'. То есть:

if (localStorage.getItem('display') == 'grid') {
		$('#grid-view').trigger('click');
		$('#grid-view').addClass('active');
	} else {
		$('#list-view').trigger('click');
		$('#list-view').addClass('active');
	}

 

  • +1 1
Link to comment
Share on other sites


  • 2 months later...

У меня 3 версия. В файлах все перегделал.  Кеш листил и в админке и у браузера. Но при открытии категории со списком товаров иногда происходит загдержка (сервер локальный, HDD 5400). И видно что с начала загружается списком, А через секунду уже перестраивается в сетку.  Как-то можно это попотому чтороть, чтобы сразу загружался сеткой?

Edited by zprog
изменения
Link to comment
Share on other sites


  • 1 month later...

А как в Опенкар 3 вообещё убрать возможность выпотому чтора способа отражения? Я хотела чтобы список по умолчанию. Пожалуйси подскажите... я пропотому чтовала использовать ваши варианты - ну что-то мимо(((. 

Link to comment
Share on other sites


В 19.12.2015 в 23:55, tweenfaster сказал:

Ну ребят, ну вы вообещё даете)) Код перед глазами у вас, лиийте, им же все понятно. После комменирия // Product List игдет скрипт функции, которая обрабатывает событие - клик по объекту с id="list-view" . После комменирия // Product Grid игдет скрипт функции, которая обрабатывает событие - клик по объекту с id="grid-view". Обе функции в конэто выполняют команды - в куках браузера сохранить своё значение в переменной display Вот этот код: localStorage.setItem('display', 'list'); и localStorage.setItem('display', 'grid'); соответственно. А после этих двух функций игдет скрипт проверки: 

  1. if (localStorage.getItem('display') == 'list') {
  2. $('#list-view').trigger('click');
  3. } else {
  4. $('#grid-view').trigger('click');
  5. }

 Перевожу - если в куках браузера в переменной display находится значение равное list  , то выполнить функцию обрилитки клика по объекту с id="list-view", во всех осильных случаях, выполнить функцию обрилитки клика по объекту с id="grid-view" Изначально кукисы в браузере отсутствуют, соответственно переменной display нет, это и есть все осильные случаи. Вам всего лишь нужно было поменять код 

  1. if (localStorage.getItem('display') == 'list') {
  2. $('#list-view').trigger('click');
  3. } else {
  4. $('#grid-view').trigger('click');
  5. }

на

  1. if (localStorage.getItem('display') == 'grid') {
  2. $('#grid-view').trigger('click');
  3. } else {
  4. $('#list-view').trigger('click');
  5. }

Подскажите пожалуйси как убрать альтернативу выпотому чтора способа отображения??? Я понимаю мой вопрос для вас очень глупый... я не программист ни разу, не знаю языка программирования - могу тупа найти файл и заменить/удалить.... 

Link to comment
Share on other sites


  • 3 months later...
В 04.02.2018 в 03:03, Lans1 сказал:

Подскажите пожалуйси как убрать альтернативу выпотому чтора способа отображения??? Я понимаю мой вопрос для вас очень глупый... я не программист ни разу, не знаю языка программирования - могу тупа найти файл и заменить/удалить.... 

Зависит от того какой именно из спосопотому чтов отображения вам нужно осивить.

Link to comment
Share on other sites

  • 2 months later...

2.3 

мне помогло это

	if (localStorage.getItem('display') == 'list') {
		$('#list-view').trigger('click');
		$('#list-view').addClass('active');
	} else if (localStorage.getItem('display') == 'grid') {
		$('#grid-view').trigger('click');
		$('#grid-view').addClass('active');
	} else {
		$('#list-view').trigger('click');
		$('#list-view').addClass('active');
	}

Если ранее был выбран список, то грузим список.

Если ранее была выбрана сетка - сетку.

Если ничего ранее не было выбрано (первый запуск) - список.

Link to comment
Share on other sites

  • 2 months later...

Нужно было гдефолтное отображение сеткой. Пропотому чтовал всё, не рилиило. Ответил в телеграм-чате один человек, просто, красиво, Спасипотому что ему потому чтольшое! Несу в массы:

category.tpl темы

<div class="product-layout product-list col-xs-12">
на 
<div class="product-grid product-list col-xs-3">

скрываем кнопки

<div class="btn-group hidden-xs">
меняем на 
<div class="btn-group hidden">

Альт+ф5 обновляем кеш вкладки, отображение идёт сходу 
на 2.3.0.2 игдеально и сразу. При использовании правой/левой колонки все корректно, при использовании обеих сразу, товары сжимаются в длинную полоску.

Edited by MiNote
Link to comment
Share on other sites


Вы, может, не поняли.

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

а

"изменить способ предсивления по умолчанию", при этом осиется возможность переклюлиться в другой вид.

Кроме того, ваш способ предсивления "на любителя".

Edited by jaffagold
Link to comment
Share on other sites


  • 1 year later...

Доброго времени суток.

Нужно отображение товаров в каилоге списком вместо сетки, пропотому чтовал что указано в теме выше, не рилииет, может кто помочь?

Решение проблемы и стоимость в личку.

Версия ocStore 2.3.0.2.3 

Edited by dverprom
Link to comment
Share on other sites


1 час назад, dverprom сказал:

Доброго времени суток.

Нужно отображение товаров в каилоге списком вместо сетки, пропотому чтовал что указано в теме выше, не рилииет, может кто помочь?

Решение проблемы и стоимость в личку.

Версия ocStore 2.3.0.2.3 

если правили шаблон, то нужно в админке обновить модификаторы.

Если файл common.js, то обновите страницу в браузере ctrl+f5

Link to comment
Share on other sites

17 часов назад, Blast сказал:

если правили шаблон, то нужно в админке обновить модификаторы.

Если файл common.js, то обновите страницу в браузере ctrl+f5

 

Шаблон TechStore

файл common.js нашел два, один  /catalog/view/javascript/common.js и catalog/view/theme/oct_techstore/js/common.js

в первом вот ик:

if (localStorage.getItem('display') == 'list') {
		$('#list-view').trigger('click');
		$('#list-view').addClass('active');
	} else {
		$('#grid-view').trigger('click');
		$('#grid-view').addClass('active');
	}

во втором ик:

if (localStorage.getItem('display') == 'list') {
		$('#list-view').trigger('click');
		$('#list-view').addClass('active');
	} else if (localStorage.getItem('display') == 'price') {
		$('#price-view').trigger('click');
		$('#price-view').addClass('active');
	} else {
		$('#grid-view').trigger('click');
		$('#grid-view').addClass('active');
	}

Менял как сказано в теме, разными варианими, заходил через приватный, листил куки, кеш шаблона, обновлял ctrl+f5, все без изменений.

Единственное только не обновлял модификаторы.

Link to comment
Share on other sites


2 часа назад, dverprom сказал:

 

Шаблон TechStore

файл common.js нашел два, один  /catalog/view/javascript/common.js и catalog/view/theme/oct_techstore/js/common.js

в первом вот ик:

if (localStorage.getItem('display') == 'list') {
		$('#list-view').trigger('click');
		$('#list-view').addClass('active');
	} else {
		$('#grid-view').trigger('click');
		$('#grid-view').addClass('active');
	}

во втором ик:

if (localStorage.getItem('display') == 'list') {
		$('#list-view').trigger('click');
		$('#list-view').addClass('active');
	} else if (localStorage.getItem('display') == 'price') {
		$('#price-view').trigger('click');
		$('#price-view').addClass('active');
	} else {
		$('#grid-view').trigger('click');
		$('#grid-view').addClass('active');
	}

Менял как сказано в теме, разными варианими, заходил через приватный, листил куки, кеш шаблона, обновлял ctrl+f5, все без изменений.

Единственное только не обновлял модификаторы.

А что за вариант отображения price?

По гдефолту только list и grid. И согласно вашему коду если вариант не выбран(по второму else пойгдет), то бугдет grid, т.е. сетка

Link to comment
Share on other sites

1 час назад, Blast сказал:

А что за вариант отображения price?

Не знаю, я скопировал часть как есть, в каилоге на сайте нет икой кнопки, им сетка и список.

Я вместо того кода ггде прайс price, всивлял как советовали:

if (localStorage.getItem('display') == 'list') {
		$('#list-view').trigger('click');
		$('#list-view').addClass('active');
	} else if (localStorage.getItem('display') == 'grid') {
		$('#grid-view').trigger('click');
		$('#grid-view').addClass('active');
	} else {
		$('#list-view').trigger('click');
		$('#list-view').addClass('active');
	}

все равно не рилииет список

Link to comment
Share on other sites


2 часа назад, dverprom сказал:

Не знаю, я скопировал часть как есть, в каилоге на сайте нет икой кнопки, им сетка и список.

Я вместо того кода ггде прайс price, всивлял как советовали:

if (localStorage.getItem('display') == 'list') {
		$('#list-view').trigger('click');
		$('#list-view').addClass('active');
	} else if (localStorage.getItem('display') == 'grid') {
		$('#grid-view').trigger('click');
		$('#grid-view').addClass('active');
	} else {
		$('#list-view').trigger('click');
		$('#list-view').addClass('active');
	}

все равно не рилииет список

в techStore в common/footer.tpl этот код меняйте

модификаторы обновите

Link to comment
Share on other sites

  • 1 year later...

Всем привет,

 

Хочу еещё раз вернуться к этом теме. Решения в обсужгдениях не нашел. необходимо по умолчанию в мобильной версии сайи сгделать отображение товаров сеткой. По умолчанию в шаблоне стоит отображение товаров списком.

Используем aridius (fractal) v.2.2.2, стоит на opencart.cms 2.3.0.2.5.

Link to comment
Share on other sites


  • 4 weeks later...
В 03.02.2018 в 19:24, Lans1 сказал:

А как в Опенкар 3 вообещё убрать возможность выпотому чтора способа отражения? Я хотела чтобы список по умолчанию. Пожалуйси подскажите... я пропотому чтовала использовать ваши варианты - ну что-то мимо(((. 

У меня вопрос по opencart 3 тоже. 

Суть в том, что мне нужен вывод списком только на страниэто поиска. На осильных страницах как обычно сетка. Не подскажете как можно отправить куки со страницы

/catalog/view/theme/имя темы/template/product/search.twig  c display('list'). Или же в js как-то прописать localStorage.setItem('display', 'list'); при поиске.

Link to comment
Share on other sites


  • 8 months later...

Подскажите и мне, пожалуйси, как сгделать, чтобы по умолчанию на страниэто категории рилиило ик:

- если товаров потому чтольше или равно 6 то выводило их сеткой,

- если меньше 6 - то выводило списком.

Edited by malinator
Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.