Сортировка Views

Главные вкладки

Аватар пользователя 7Rei 7Rei 30 марта 2021 в 16:02

Добрый день!
Сайт на drupal 7, модуль views 3.
Передаю во вьюс, nid нод для вывода, через  контекстный фильтр "Content: Nid".
Ожидаю получить на выходе, именно тот порядок нод, который передал во вьюс (30,4,7).
Любую сортировку убрал - так как сортировка определяется во вневшнем поле, а не внутри выводимых нод.

Но получил такой результат:
image

Записи все равно сортируются в порядке возрастания nid: 4,7,30.

Вопрос,  как можно отсортировать ноды во вьюс, в передаваемом мною порядке из вне?

Лучший ответ

Комментарии

Аватар пользователя 7Rei 7Rei 30 марта 2021 в 18:06

Пока нашел, потенциальный модуль: https://www.drupal.org/project/views_arguments_extras

Он работает "иногда", пока не понял от каких условий зависит.

Вообще похоже придется писать свой вывод тизеров нод, вместо Вьюса..

Аватар пользователя marassa marassa 30 марта 2021 в 16:38

7Rei wrote: Ожидаю получить на выходе, именно тот порядок нод, который передал во вьюс (30,4,7).

Напрасно: порядок вывода результатов SQL-запроса при отсутствии ORDER BY - произвольный. То, что они вышли в порядке возрастания nid - чистая случайность и стечение обстоятельств.

7Rei wrote: как можно отсортировать ноды во вьюс, в передаваемом мною порядке из вне?

Боюсь, что без программирования никак.
Можно полюбопытствовать: какая задача потребовала такого неординарного запроса? Откуда изначально берутся числа 30,4,7 и их порядок?

Аватар пользователя 7Rei 7Rei 30 марта 2021 в 17:12

marassa wrote: Напрасно: порядок вывода результатов SQL-запроса при отсутствии ORDER BY - произвольный. То, что они вышли в порядке возрастания nid - чистая случайность и стечение обстоятельств.

Он не случаен, данный результат повторяется из раза в раз (при обновлении контента).

marassa wrote: Можно полюбопытствовать: какая задача потребовала такого неординарного запроса? Откуда изначально берутся числа 30,4,7 и их порядок?

Один и те же карточки товара, должны выводится на разных страницах, в разной последовательности (с разной сортировкой), в зависимости от их приоритетности/актуальности для данной страницы.

Аватар пользователя marassa marassa 30 марта 2021 в 17:15

7Rei wrote: Он не случаен, данный результат повторяется из раза в раз (при обновлении контента).

Сегодня повторяется, завтра повторяется, а послезавтра не повторится. И никто не виноват.

7Rei wrote: в зависимости от их приоритетности/актуальности для данной страницы

Приоритетность/актуальность для данной страницы как определяется? Повторю еще раз свой вопрос: откуда берется последовательность 30,4,7 для передачи во View в качестве аргумента?

Аватар пользователя 7Rei 7Rei 30 марта 2021 в 17:32

Из сторонней системы, определяющей веса. Плюс иногда вмешивается оператор.
30,4,7 - nid'ы нод, хранящиеся в отдельном поле.

Технически процесс выглядит так:
На странице есть поле, с прописанными нодами: "30,4,7,1025,123,1163".
Далее, эти nid передаются в качестве аргумента для вывода во вьюс на этой странице.

Важно:
1. Чтобы на данной странице, вывелись именно данные ноды (nid'ы).
2. Чтобы они вывелись именно в таком порядке.

Аватар пользователя marassa marassa 30 марта 2021 в 17:41
1

7Rei wrote:иногда вмешивается оператор

Вот с этим проще всего - есть модуль Draggable Views.

7Rei wrote: На странице есть поле, с прописанными нодами: "30,4,7,1025,123,1163".
Далее, эти nid передаются в качестве аргумента для вывода во вьюс на этой странице.

Не вижу как это можно накликать мышкой. Только если писать свой sort handler.

Аватар пользователя 7Rei 7Rei 30 марта 2021 в 18:00

marassa wrote: Вот с этим проще всего - есть модуль Draggable Views.

Да, видел его. Но, у меня 1000чи страниц, и как его приспособить для вывода уникальной сортировки для каждой страницы, пусть даже вручную, не придумал (не создавая уникальный вьюс, под каждую выдачу).