Перейти к содержимому


Фото
- - - - -

Сортировка товаров в админке


Best Answer question , 11.02.2019 - 11:45

Добавил в Products.php строки

                case 'sold':
                $order = '(SELECT MAX(pv.sold) FROM __variants pv WHERE p.id = pv.product_id AND pv.position=        (SELECT MIN(position) FROM __variants WHERE product_id=p.id LIMIT 1)                   LIMIT 1) desc';
                break;
 

 

 
 
 

Заработало. 

Перейти к посту


  • Чтобы отвечать, сперва войдите на форум
19 ответов в теме

#1 question

question
  • Пользователь
  • 275 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Россия

Опубликовано 09.02.2019 - 14:34

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

- дате создания

- цене

- наличию картинки

- наличию скидки

и т.д. и т.п.

P.S. Если что, у меня есть в s_variants поле sold типа Дата и стоит задача показывать те товары, которые были проданы недавно.



#2 phukortsin

phukortsin
  • Фрилансер
  • 879 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 09.02.2019 - 19:09

Если хотите в админке разные сортировки, то вопрос очень непростой, так как изначально в админке есть сортировка по умолчанию, и работает сортировка перетаскиванием. Простым способом совсем хорошо вряд ли выйдет, много переделывать надо. Либо вообще отказываться от сортировки по умолчанию и перетаскиваний...



#3 Kosjak76

Kosjak76
  • Модератор
  • 3 829 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Харьков, Украина

Опубликовано 09.02.2019 - 19:50

А по-моему, ТС просто НЕ ПОНИМАЕТ, ЧТО такое сортировка)))

И чем Сортировка отличается от ФИЛЬТРАЦИИ...

Если принять этот факт - то все намного проще оказывается))



#4 Kami

Kami
  • Пользователь
  • 343 сообщений
  • Откуда:Россия

Опубликовано 10.02.2019 - 01:05

А по-моему, ТС просто НЕ ПОНИМАЕТ, ЧТО такое сортировка)))

И чем Сортировка отличается от ФИЛЬТРАЦИИ...

Если принять этот факт - то все намного проще оказывается))

 

Он просто в один вопрос включил и сортировку и фильтрацию.



#5 Kami

Kami
  • Пользователь
  • 343 сообщений
  • Откуда:Россия

Опубликовано 10.02.2019 - 01:18

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

- дате создания

- цене

- наличию картинки

- наличию скидки

и т.д. и т.п.

P.S. Если что, у меня есть в s_variants поле sold типа Дата и стоит задача показывать те товары, которые были проданы недавно.

 

вы просто определитесь что вам нужно? фильтрация или сортировка. Например по дате создания - это сортировка.

а вот по наличию картинки и наличию скидки это уже фильтрация. Как вы будете сортировать наличие скидки или картинку? это ведь либо есть либо нет. То есть тут конкретный признак.



#6 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 7 166 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 10.02.2019 - 01:30

вы просто определитесь что вам нужно? фильтрация или сортировка. Например по дате создания - это сортировка.
а вот по наличию картинки и наличию скидки это уже фильтрация. Как вы будете сортировать наличие скидки или картинку? это ведь либо есть либо нет. То есть тут конкретный признак.

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

#7 Kami

Kami
  • Пользователь
  • 343 сообщений
  • Откуда:Россия

Опубликовано 10.02.2019 - 10:09

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

 

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



#8 question

question
  • Пользователь
  • 275 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Россия

Опубликовано 10.02.2019 - 11:40

Он просто в один вопрос включил и сортировку и фильтрацию.

Меня интересует и группировка и сортировка - и то и то.

Где-то на форуме проскакивала тема с готовым решением, но там было что-то типа "показывать только хиты", "показывать сначала товары со скидкой" и т.д. Мне нужно понять, в каком файле формируется SQL запрос.


Изменено: question, 10.02.2019 - 11:44


#9 question

question
  • Пользователь
  • 275 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Россия

Опубликовано 10.02.2019 - 11:42

Как вы будете сортировать наличие скидки или картинку? это ведь либо есть либо нет. То есть тут конкретный признак.

Сначала с картинкой, затем - без неё. 


Изменено: question, 10.02.2019 - 11:43


#10 Kami

Kami
  • Пользователь
  • 343 сообщений
  • Откуда:Россия

Опубликовано 10.02.2019 - 11:45

Сначала с картинкой, затем - без неё. 

:) да эт я тупанул, согласен что можно так сделать. Но я бы лучше фильтр сделал. Как в симпле по дефолту например товары в наличии. 



#11 phukortsin

phukortsin
  • Фрилансер
  • 879 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 10.02.2019 - 12:47

Меня интересует и группировка и сортировка - и то и то.
Где-то на форуме проскакивала тема с готовым решением, но там было что-то типа "показывать только хиты", "показывать сначала товары со скидкой" и т.д.

Что касайется фильтрации, то стандартно в товарах в админке есть фильтры Рекомендуемые, Со скидкой, Активные, Неактивные, Отсутствующие.
Аналогия полнейшая, действуйте...

Мне нужно понять, в каком файле формируется SQL запрос.

Разные запросы формируются в разных файлах. По Вашей задаче - скорее всего, в api/Products.php...

#12 question

question
  • Пользователь
  • 275 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Россия

Опубликовано 10.02.2019 - 13:48

Что касайется фильтрации, то стандартно в товарах в админке есть фильтры Рекомендуемые, Со скидкой, Активные, Неактивные, Отсутствующие.
Аналогия полнейшая, действуйте...Разные запросы формируются в разных файлах. По Вашей задаче - скорее всего, в api/Products.php...

Спасибо, буду ковырять.

Не могу ту самую тему о расширении функционала фильтрации (или сортировки) найти, может кто встречал?



#13 question

question
  • Пользователь
  • 275 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Россия

Опубликовано 10.02.2019 - 22:01

Нашёл в products.php строчку

 

$order = 'p.visible DESC, p.position DESC'
 

И далее она применяется в коде так:

 

 ORDER BY $order
 

 

Ну хорошо, вот она и сортировка по умолчанию, достаточно будет заменить на

 

 

$order = 'pv.sold';
 

И получить искомую сортировку. Стоп. А где формируется переменная $order и где она передаётся методом get? Я этого места не нашёл. Да и вообще из админки она не передаётся. site.ru/simpla/?order=price не будет сортировать товары...


Изменено: question, 10.02.2019 - 22:27


#14 phukortsin

phukortsin
  • Фрилансер
  • 879 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 11.02.2019 - 09:05

А где формируется переменная $order и где она передаётся методом get? Я этого места не нашёл. Да и вообще из админки она не передаётся. site.ru/simpla/?order=price не будет сортировать товары...

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

#15 question

question
  • Пользователь
  • 275 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Россия

Опубликовано 11.02.2019 - 10:33

Ок, щас прочёл основы программирования. А в чём вопрос некорректен?

Переменная $order есть? Есть.

В одном месте вижу, ей присваевается строка, понимаю, в другом месте тоже, найти не могу.



#16 question

question
  • Пользователь
  • 275 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Россия

Опубликовано 11.02.2019 - 10:50

А где формируется переменная $order и где она передаётся методом get? Я этого места не нашёл. Да и вообще из админки она не передаётся. site.ru/simpla/?order=price не будет сортировать товары...

Этот url не работает потому что в /simpla/ProductsAdmin.php изначально отсутствует строка

 

$filter['sort'] = $this->request->get('sort', 'string'); 

Изменено: question, 11.02.2019 - 11:08


#17 phukortsin

phukortsin
  • Фрилансер
  • 879 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 11.02.2019 - 11:18

$order = 'pv.sold';
 
...А где формируется переменная $order

 

Например, в указанной Вами строке формируется. А в CMS вообще такая переменная формируется еще в десятках мест...

 

...и где она передаётся методом get?

 

Прежде чем задавать такой вопрос, надо убедиться в том, что она вообще где-то передается. А до того вопрос некорректный.

Вот Вы сначала попробуйте обосновать то, что где-то передается - и не тяп-ляп кое-как, а доказательно...
 

 

Этот url не работает потому что в /simpla/ProductsAdmin.php изначально отсутствует строка

 

$filter['sort'] = $this->request->get('sort', 'string'); 

 

Еще одна бессмысленность...



#18 question

question
  • Пользователь
  • 275 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Россия

Опубликовано 11.02.2019 - 11:45   Best Answer

Добавил в Products.php строки

                case 'sold':
                $order = '(SELECT MAX(pv.sold) FROM __variants pv WHERE p.id = pv.product_id AND pv.position=        (SELECT MIN(position) FROM __variants WHERE product_id=p.id LIMIT 1)                   LIMIT 1) desc';
                break;
 

 

 
 
 

Заработало. 


Изменено: question, 11.02.2019 - 12:13


#19 question

question
  • Пользователь
  • 275 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Россия

Опубликовано 11.02.2019 - 11:58

phukortsin, вам бы для начала основы программирования изучить. А то новичок больше вас знает.

Изменено: question, 11.02.2019 - 12:14


#20 question

question
  • Пользователь
  • 275 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Россия

Опубликовано 11.02.2019 - 12:52

В итоге сделал "админку для кладовщика" с урезанным функционалом, в которой можно только менять количество товара + сохранение через ajax + возможна сортировка по дате продажи.






0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых