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

[РЕШЕНО] Вывод товара списком по умолчанию в 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
Надіслати
Поділитися на інших сайтах


  • 2 months later...

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

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


  • 1 month later...

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

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


В 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. }

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

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


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

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

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

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

  • 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');
	}

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

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

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

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

  • 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 идеально и сразу. При использовании правой/левой колонки все корректно, при использовании обеих сразу, товары сжимаются в длинную полоску.

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


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

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

а

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

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

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


  • 1 year later...

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

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

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

Версия ocStore 2.3.0.2.3 

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


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

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

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

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

Версия ocStore 2.3.0.2.3 

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

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

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

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, все без изменений.

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

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


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, т.е. сетка

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

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');
	}

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

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


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 этот код меняйте

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

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

  • 1 year later...

Всем привет,

 

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

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

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


  • 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'); при поиске.

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


  • 8 months later...

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

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

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

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


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

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

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

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

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

Вхід

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

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

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

×
×
  • Створити...

Important Information

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