Вы здесь

Как вывести материалы "Самое популярное за неделю" на основе рейтинга Fivestar?

0

Имею блок, который называется "ТОП статей".
Статьи выводятся в порядке рейтинга, реализованного с помощью голосовалки Fivestar.
Проблема в том, что статьи выводятся за всё время, а не за определенный период времени.
А нужно, чтобы статьи ранжировались по типу Самые-Популярные-За-Неделю.
То есть, статьи, которые получили, в среднем, самые высокие оценки за последнюю неделю, должны выводиться выше.
Как сделать? Куда влезть? Что подкрутить?

Версия Drupal: 
7.x
Связанные проекты: 
FivestarViews
Вопрос задан 14.05.2017 - 06:00
Аватар пользователя xox
xox
0

Ответы

-1

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

Простейший запрос:

SELECT entity_id, AVG(IF(timestamp > UNIX_TIMESTAMP() - 604800, value * 10, value)) rating
FROM votingapi_vote
GROUP BY entity_id
ORDER BY rating DESC
LIMIT 5

допишите запрос под себя.

Отсортировать views по порядку, переданному в аргументе, поможет модуль https://www.drupal.org/project/views_arguments_extras

Ответ дан 15.05.2017 - 01:47
Аватар пользователя xandeadx
xandeadx
1542

Благодарю, но я в PHP не шпрехензедойч совсем. Может, вы у себя на блоге подробную инструкцию запостите, а то задача типичней некуда, а простого решения на друпале я так и не нашел (

Комментарий оставлен 15.05.2017 - 08:30
-2

Как сделать?

Изменить условия выборки представления/view, на котором реализован "блок, который называется "ТОП статей".

Куда влезть?

В настройки этого представления.

Что подкрутить?

Добавить фильтр по времени публикации статьи.

Ответ дан 14.05.2017 - 20:23

А зачем фильтр по времени публикации статьи? Мне нужен фильтр по количеству голосов за последнюю неделю. Неважно, когда статьи были опубликованы, хоть год назад, если за них проголосовало больше всего народу за неделю, то они и должны выводиться. Неужели нет такого фильтра?

Комментарий оставлен 15.05.2017 - 08:32

У меня в списке фильтров вот это только:

  • Vote results: Tag
  • Vote results: Value
  • Vote results: Value type
  • Vote results: Время
  • Vote results: Функция

"Vote results: Время" - по-моему, самый интересный, но что-то я не вкуриваю, как он работает.

Комментарий оставлен 15.05.2017 - 08:36