Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Стол заказов » Сортировка в custom по значению доп. поля

Сортировка в custom по значению доп. поля


 Носок в стакане    06.10.2020    Стол заказов    1509    9 комментариев

Нужно сделать сортировку в теге custom по значению выбранного доп. поля или нескольких доп.полей.
{custom ...... order="xf_xxxxx||xf_yyyy" sort="desc"}

Если в поле XXXX значения совпали, то сортирует по YYYY.

надеюсь понятно объяснил.

9 комментариев

Genka_molodec
Юзер

Genka_molodec - 6 октября 2020 22:34 -


Носок в стакане
Юзер

Носок в стакане - 6 октября 2020 22:55 -

Я не поиск имел в виду, а именно сортировку уже найденных новостей.
Параметр order. Стандартно в нем доступны лишь значения: date, editdate, rating, reads, comments, title, rand и lastviewed. Вот сюда и надо добавить доп. поля.

dj-avtosh
PHP-developer

dj-avtosh - 7 октября 2020 01:23 -

вряд ли это реализуемо, по крайней мере будет слишком тормозить. только если joinить на _xfsearch (там только перекрестные поля) и то будет лагать.

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

Snake
Юзер

Snake - 7 октября 2020 13:12 -

Тоже нужно такое.
Говорят blockpro решает эту проблему, но глядя на его инструкцию у меня мозг взрывается и лень заставляет закрыть побыстрее вкладку ибо ещё и на сайте придётся кучу всего под него переделывать.

Носок в стакане
Юзер

Носок в стакане - 7 октября 2020 13:23 -

Да там все понятно, на самом деле. Надо только в документацию подглядывать.
Мне он не подошел т.к. выбирает новости не точно.
Т.е. если нужно отобрать новости со значением ТОЛЬКО "красный" он отберёт все новости где в поле встретилось значение "красный" не взирая что радом стоит "синий" и его отбирать не нужно. Поэтому приходится использовать модифицированный custom с доработкой от LazyDev, а сортировать скриптами. Та еще бандура получается.

lutskboy
Эксперт

lutskboy - 7 октября 2020 14:46 -

по одному можно сделать. а по двум как то жестко

Носок в стакане
Юзер

Носок в стакане - 7 октября 2020 15:07 -

Ну хоть по одному

dj-avtosh
PHP-developer

dj-avtosh - 7 октября 2020 15:35 -

Примерно так:

SELECT p.* FROM dle_post p 
LEFT JOIN dle_xfsearch dx ON (p.id = dx.news_id AND dx.tagname='TAG_NAME')
WHERE p.approve = 1  AND p.category regexp '[[:<:]](CATEGORY_ID)[[:>:]]'
ORDER BY dx.tagvalue DESC;

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

Snake
Юзер

Snake - 20 октября 2020 08:57 -

А как использовать? В какой файл это вставлять?

Чтобы комментировать - войдите или зарегистрируйтесь на сайте
наверх