Сортировка в InstantShop v2.2 1.X

 
Посетитель
no avatar
Сообщений: 2
Здравствуйте. После добавления большого количества товаров возникла необходимость изменить порядок, в котором они отображаются на странице. На страницу выведена витрина. На данный момент они отсортированы по id, как его изменить я не нашел. Параметр "Сортировка товаров по-умолчанию:" во вкладке товары, в настройках компонента влияния не оказал. Изменение порядка отображения в админке так же не изменило порядок на странице. Буду рад любой помощи.
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 497
Для модуля витрины вывод товаров обусловлен функцией
Код PHP:
  1. public function getFrontItems($root_cat_id=0) {
  2.  
  3. if ($root_cat_id){
  4. $rootcat = $this->inDB->get_fields('cms_shop_cats', 'id='.$root_cat_id, 'NSLeft, NSRight');
  5. $catsql = "i.category_id = c.id AND c.NSLeft >= {$rootcat['NSLeft']} AND c.NSRight <= {$rootcat['NSRight']}";
  6. }
  7.  
  8. $this->where('i.is_front = 1');
  9. if ($root_cat_id) { $this->where($catsql); }
  10. $this->groupBy('i.id');
  11.  
  12. return $this->getItems();
  13.  
  14. }
в файле \components\shop\model.php

перед $this->groupBy('i.id');
добавьте
$this->orderBy('i.title');
и будет сортировка по названию
Редактировалось: 2 раз (Последний: 4 июня 2021 в 17:31)
Создание сайтов, верстка, дизайн, кодинг
Спасибо принимаются на: ЯД 41001150698283
Реклама
cms
Посетитель
no avatar
Сообщений: 2
AtlantisWeb:

Для модуля витрины вывод товаров обусловлен функцией
Код PHP:
  1. public function getFrontItems($root_cat_id=0) {
  2.  
  3. if ($root_cat_id){
  4. $rootcat = $this->inDB->get_fields('cms_shop_cats', 'id='.$root_cat_id, 'NSLeft, NSRight');
  5. $catsql = "i.category_id = c.id AND c.NSLeft >= {$rootcat['NSLeft']} AND c.NSRight
  6.  

Спасибо вам за ответ. А можно ли применить такой метод только к одной из витрин? И Хотелось бы установить сортировку по артикулу, замена i.title на i.vendor / i.vendor_id не повлияло на результат, думаю я просто не правильно пишу название
Редактировалось: 3 раз (Последний: 4 июня 2021 в 18:33)
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 497
@Risalo:

AtlantisWeb:

Для модуля витрины вывод товаров обусловлен функцией
Код PHP:
  1. public function getFrontItems($root_cat_id=0) {
  2.  
  3. if ($root_cat_id){
  4. $rootcat = $this->inDB->get_fields('cms_shop_cats', 'id='.$root_cat_id, 'NSLeft, NSRight');
  5. $catsql = "i.category_id = c.id AND c.NSLeft >= {$rootcat['NSLeft']} AND c.NSRight
  6.  

Спасибо вам за ответ. А можно ли применить такой метод только к одной из витрин? И Хотелось бы установить сортировку по артикулу, замена i.title на i.vendor / i.vendor_id не повлияло на результат, думаю я просто не правильно пишу название

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

Зайдите в БД и посмотрите какие поля есть в таблице "cms_shop_items", по ним и можно будет делать сортировку.
Артикул имеет поле не vendor_id(производитель), а "art_no"
Создание сайтов, верстка, дизайн, кодинг
Спасибо принимаются на: ЯД 41001150698283
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.