есть материалы, требуется вывести блок с лучшими материалами по оценке пользователя,
через виевс есть возможность вывода по среднему арифметическому, при попытке вывода общего кол-ва баллов выводит пустой вивс
Буду благодарен за помощь в решении данной проблемы..
Собственно сам запрос
SELECT node.nid AS nid,
node.title AS node_title,
node_data_field_proizvedenie.field_proizvedenie_fid AS node_data_field_proizvedenie_field_proizvedenie_fid,
node_data_field_proizvedenie.field_proizvedenie_list AS node_data_field_proizvedenie_field_proizvedenie_list,
node_data_field_proizvedenie.field_proizvedenie_data AS node_data_field_proizvedenie_field_proizvedenie_data,
node.type AS node_type,
node.vid AS node_vid,
votingapi_cache_node_percent_vote_sum.value AS votingapi_cache_node_percent_vote_sum_value
FROM node node
INNER JOIN votingapi_cache votingapi_cache_node_percent_vote_sum ON node.nid = votingapi_cache_node_percent_vote_sum.content_id AND (votingapi_cache_node_percent_vote_sum.content_type = 'node' AND votingapi_cache_node_percent_vote_sum.value_type = 'percent' AND votingapi_cache_node_percent_vote_sum.tag = 'vote' AND votingapi_cache_node_percent_vote_sum.function = 'sum')
LEFT JOIN content_type_proizvedenie node_data_field_proizvedenie ON node.vid = node_data_field_proizvedenie.vid
WHERE node.type in ('proizvedenie')
ORDER BY votingapi_cache_node_percent_vote_sum_value DESC
Комментарии
P.S. Решение есть на форуме
это не доказательство, там сортировка по среднему арифметическому, а мне нужно:
1 проголосовал - 4 балла
2 проголосовал - 5 баллов
3 проголосовал - 2 балла
итого баллов у ноды 11, вот по этому числу и нужна сортировка
ЗЫ Решение на форуме не нашел, есть одна подобная тема, и то без ответа
Voting API ковыряйте
спасибо за направление.
Была та же самая проблема.
В конце концов разобрался - в модуле Voting API в функции _votingapi_get_standard_results сумма считается только для значений типа points, в Fivestar же значения - проценты. Как сменить тип в Fivestar не понял, просто закоментил условие.
можно поподробнее?
Открываешь папку модуля, смотришь основной файл. Находишь функкцию _votingapi_get_standard_results и просто коментишь условие на points
Можно реализовать хитрым путем
В Relationships добавляем 3 значения Vote results каждое называем по своему
1 - для показа звезд
2 - для сортировки по количеству голосов
3 - для фильтра по лучшему среднему
Выводим звезды по 1
Ставим сортировку по 2
Ставим фильтр по 3
Ставим фильтр по периоду времени