Как мне получить результат голосования в API голосования?


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

 5
7
Author: kiamlaluno, 2011-04-18

4 answers

Поскольку вы установили модуль оценки, вы можете использовать функцию rate_get_results(), которую можно вызвать как rate_get_results('node', $nid, $widget_id); $nid является идентификатором узла узла, для которого вы хотите получить результат, и $widget_id является идентификатором виджета, используемого для голосования.
Результатом является массив, содержащий множество значений (некоторые из них присутствуют только для определенного виджета); в частности $output['rating'] - это рейтинг, а $output['count'] - количество голосов.
Если виджет сохраняет сумму голосов, то $output['rating'] (где $output содержит результат, возвращенный из rate_get_results('node', $nid, $widget_id)) содержит сумму голосов, которую вы ищете.

 2
Author: kiamlaluno, 2011-04-19 00:40:51

Просто используйте _votingapi_get_standard_результаты()!

 1
Author: Alex Weber, 2011-04-18 23:54:31

Сначала создайте следующие отношения:

Содержимое: Результаты голосования -- Тип значения: Без фильтрации -- Функция агрегирования: Среднее число голосов.

Во-вторых, снова создайте ту же связь, изменив агрегатную функцию на: Количество голосов и идентификатор на: Результат голосования (ранг.)

В-третьих, добавьте следующий критерий сортировки: Результаты голосования: Значение (описание)

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

Это даст вам желаемые результаты: Узлы теперь правильно ранжированы.

Вы можете проверить это, включив отображение текста под звездочками: Как голос пользователя, так и средний голос в поле рейтинг.

 0
Author: user14666, 2014-07-29 20:03:08

С помощью Drupal 7 вы можете получить информацию о голосовании программно, используя функцию votingapi_select_results().

Пример:

$criteria = array();
$criteria["entity_id"] = $nid;
$criteria["entity_type"] = "node";
$criteria["value_type"] = "points";
$criteria["tag"] = "hopper";
//$criteria["function"] = "count";   // don't set, and get an array of all.

$res = votingapi_select_results($criteria);

Если вы затем изучите (например, dpm($res)), вы увидите, что $res - это массив всей информации, которая вам понадобится для каждой "функции" вашего виджета для голосования.

Чтобы выяснить, какие "value_type" и "тег" использовать, посмотрите таблицу votingapi_cache.

 0
Author: Richard, 2016-07-22 14:26:26