Узнать и вывести место в списке (рейтинге)

Аватар пользователя buldozer_kpi buldozer_kpi 7 февраля в 14:16

Здравствуйте.

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

Сейчас, например, следующий рейтинг компаний:

1. ООО "Василек"
2. ООО "Ромашка"
3. ООО "Рога и копыта"
.......
Как на странице конкретной компании вывести текущую позицию в рейтинге? Например на странице ООО "Ромашка" вывести: №2 в рейтинге компаний.

0 Thanks

Комментарии

Аватар пользователя ivnish ivnish 7 февраля в 14:25

Ну у вас же вьюха сортирует их на основании рейтинга. Выводите эту переменную рейтинга в шаблоне ноды-компании

Аватар пользователя buldozer_kpi buldozer_kpi 7 февраля в 14:35

Текущая оценка компании, на основании которой вьюха сортирует компании, не отображает место этой компании в рейтинге. Оценку я выводить умею в шаблоне. А место как?

1. ООО "Василек" 4,7
2. ООО "Ромашка" 4,2
3. ООО "Рога и копыта" 3,8

1, 2, 3 - это просто счетчик результатов во вьюхе.

Аватар пользователя ivnish ivnish 7 февраля в 14:49

Ну как вариант в препроцессе шаблона вычислять номер позиции на основании всех рейтингов

Аватар пользователя buldozer_kpi buldozer_kpi 7 февраля в 15:05
itcrowd72 wrote:

А через что вы рейтинги храните? Кастом или контрибный модуль?

Для оценки компании пользователями используются Fivestar и Voting API. А сама таблица рейтинга компаний формируется через вьюху, которая сортирует компании по убыванию Vote. Ну а нумерация, как я писал, это Глобальный счетчик результатов во вьюхе.

Аватар пользователя bumble bumble 7 февраля в 16:12

В том то и дело. У Вас нет никакого "рейтинга".

Вам нужно сохранять эту позицию рейтинга куда-то, тогда Вы сможете использовать эти данные, в т.ч. выводить на страницу.

Пересчитывать все позиции при каждой загрузке страницы ради вывода номера - непростительный оверхед.