web-dev-qa-db-fra.com

Comment puis-je obtenir le vote au résultat du vote API?

J'ai installé le module de tarif et a découvert que les votes associés à un nœud sont stockés dans la table VOTIGEAPI_Vote.
[.____] Y a-t-il une fonction à utiliser pour obtenir la somme de tous les votes pour un nœud?

5
enjoylife

Avec Drupal 7, vous pouvez obtenir des informations de vote par programme à l'aide de la fonction votingapi_select_results ().

Ex:

$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);

Si vous examinez ensuite (ex: dpm ($ res)), vous pouvez voir que RES $ est un tableau de toutes les informations dont vous aurez besoin pour chaque "fonction" de votre widget de vote.

Pour déterminer quelle "valeur_type" et "étiquette" à utiliser, regardez la table VOTIGEAPI_Cache.

0
Richard

Créez d'abord les relations de suivi:

Contenu: Résultats du vote - Type de valeur: Pas de filtrage - Fonction d'agrégation: Vote moyenne.

Deuxièmement, créez la même relation de modification de la fonction d'agrégat sur: Nombre de votes et identifiant à: Résultat du vote (rang.)

Troisièmement, ajoutez le critère de tri suivant: Résultats du vote: valeur (Desc.)

Enfin, ajoutez un autre critère de tri identique à celui que vous venez de créer, sauf que vous sélectionnerez la deuxième relation (résultat de vote (rang.) L'ordre de tri décroit également.

Cela vous donnera les résultats souhaités: les nœuds sont maintenant correctement classés.

Vous pouvez le tester en activant le texte à afficher sous les étoiles: vote de l'utilisateur et moyen dans le champ de notation.

0
user14666