Как сделать порядковый номер в таблице views?

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

Аватар пользователя Im Im 29 мая 2020 в 4:42

Всем привет!

Подскажите, как можно реализовать порядковый номер во вьюс(тип отображения таблица), при условии, что к таблице прикручена пользовательская фильтрация по полю. Использовал global counter, но после фильтрации он показывает текущую позицию строки, а не ту, что была до фильтрации. Иными словами что я хочу: есть таблица из 30 позиций например. Я ввёл фильтрацию мне показали одну позицию, но порядковый номер должен сохранится исходный, а не на основе текущих результатов(25ый например, а не первый, так как результат один).

Комментарии

Аватар пользователя marassa marassa 29 мая 2020 в 7:52

Im wrote: к таблице прикручена пользовательская фильтрация по полю

Это что означает? Просто фильтр views? Контекстный? Раскрытый?

Im wrote: есть таблица из 30 позиций например

Что это в терминах друпала? Тип материала (весь целиком)?

Im wrote: порядковый номер должен сохранится исходный

Что есть "исходный порядковый номер"? Если это некое имманентное свойство ноды, то нужно просто создать поле и вбить туда этот номер.

Аватар пользователя Im Im 29 мая 2020 в 16:53

1. exposed filter + Views Selective Filters
2. 30 разных нод. (у меня это турнирная таблица команд).
3. Исходный порядковый - это значит, что есть таблица, есть команда, которая например занимает пятую строчку, у нее номер пять. Я фильтрую таблицу раскрытым фильтром(см пункт 1), ввожу название команды под номером 5, и она остается одна(то есть осуществил в таблице поиск команды), только номер у нее теперь первый(потому что единственный вариант), а мне нужно чтобы у нее сохранялся тот номер, который был в фактическом рейтинге, а не порядковый номер текущей выборки.

Аватар пользователя marassa marassa 29 мая 2020 в 17:24

Im wrote: Исходный порядковый - это значит, что есть таблица, есть команда, которая например занимает пятую строчку, у нее номер пять

А почему именно эта команда занимает именно пятую строчку? Если объективных критериев нет, то есть номер в рейтинге является имманентным свойством команды, то нужно просто добавить в ноды поле "номер в фактическом рейтинге", и дело в шляпе.

Im wrote: нужно чтобы у нее сохранялся тот номер, который был в фактическом рейтинге, а не порядковый номер текущей выборки

Views работает только с одной выборкой - текущей - и понятия не имеет (да и не может знать) какой индекс имела та или иная строка в какой-то другой давно забытой выборке.

Аватар пользователя marassa marassa 29 мая 2020 в 18:00

Я вижу два способа решения задачи:
1. Добавляется поле "рейтинг" в ноду. Оно может заполняться/изменяться автоматически при любых изменениях в исходных данных, через Rules или просто на хуках.
2. Views всегда возвращает полную турнирную таблицу, а дальнейшая фильтрация (выкидывание из массива result ненужных значений) производится программно в хуке views_pre_render. Тогда в массиве можно сохранить исходные индексы строк, какие они были в полной таблице.