2010-07-15 3 views
2

Je dois mettre en place un tableau d'affichage avec système de notation. Quelque chose de similaire à un débordement de pile, mais beaucoup plus simple.Système de notation pour les utilisateurs et les messages (et commentaires)

Je dois évaluer les questions/réponses et calculer la note pour chaque utilisateur. Je cherche des modules dans Drupal pour l'implémenter. Pourriez-vous me donner un pourboire?

grâce

+0

Essayez http://drupal.org/project/userpoints – gagarine

Répondre

2

Fivestar, et User Points pourrait être utilisé à cette fin, mais vous obtenez seulement quelque chose de similaire à Stack Overflow.
Le premier module (qui nécessite Voting API) peut être utilisé pour permettre aux utilisateurs de voter, et le second module peut être utilisé pour transformer les votes en points pour les utilisateurs qui ont voté (entre autres - le module ne se limite pas à cette). Pour intégrer les deux modules, il existe un autre module, mais je ne suis pas sûr qu'il fasse partie des "User Points", ou User Points Contributed modules. Le problème avec Fivestar est que les utilisateurs sont autorisés à donner un vote de 1 à X (je pense que le vote maximum peut être changé), qui est différent du système de vote utilisé par Stack Overflow, où les utilisateurs peuvent simplement signaler " Je l'aime ", ou" je ne l'aime pas ". Avec Fivestar il n'y aurait que des votes positifs, et personne ne pourrait voter un commentaire, ou un nœud; il serait possible d'abaisser la moyenne en donnant le vote minimum. Entre les modules que j'ai énumérés, il n'y a pas un module qui permette de donner des points à l'auteur du nœud/commentaire; en utilisant "Voting API", et "User Points" il serait possible de le faire, mais aucun module que j'ai regardé ne permet de le faire (cela signifie que vous pourriez probablement écrire un module personnalisé).

Si vous regardez le list of the modules inclus dans le profil d'installation ArrayShift, vous pouvez avoir une idée des modules que vous pouvez utiliser pour atteindre le même objectif.
La liste des modules comprend

  • Node comments, qui transforme des commentaires dans pleins noeuds; avec ce module, par exemple, il est possible d'utiliser un module de vote qui ne fonctionne que pour les nœuds avec des commentaires aussi.
  • Voting API.
  • Vote UP/Down qui permet aux utilisateurs de voter ou de voter en bas.
  • User Points.
  • ArrayShift Support Modules; il est probable que ce module contienne du code permettant aux auteurs de nœuds d'obtenir des points chaque fois qu'un nœud qu'ils ont créé est voté.

En particulier, un module qui fait partie de ArrayShift Support Modules (as_tweaks) contient le code suivant:

/** 
* Below, a bunch of simple hook implementations that award userpoints based 
* on various events that happen. In theory, Rules module and various other tools 
* could be used to do these things, but most of those modules don't have easy 
* to export/import configuration data. 
*/ 

// VotingAPI hook. When a user casts a vote on a node, the author should 
// get/lose points.. 
function as_tweaks_votingapi_insert($votes) { 
    foreach ($votes as $vote) { 
    if ($vote['content_type'] == 'node' && ($node = node_load($vote['content_id']))) { 
     // Award the points 
     userpoints_userpointsapi(array(
     'uid'   => $node->uid, 
     'points'  => $vote['value'] * 10, 
     'operation' => 'vote up', 
     'entity_id' => $node->nid, 
     'entity_type' => 'node', 
    )); 
    } 
    } 
} 

// VotingAPI hook. When a user casts a vote on a node, the author should 
// get/lose points.. 
function as_tweaks_votingapi_delete($votes) { 
    foreach ($votes as $vote) { 
    if ($vote['content_type'] == 'node' && ($node = node_load($vote['content_id']))) { 
     // Award the points 
     userpoints_userpointsapi(array(
     'uid'   => $node->uid, 
     'points'  => $vote['value'] * -10, 
     'operation' => 'vote up', 
     'entity_id' => $node->nid, 
     'entity_type' => 'node', 
    )); 
    } 
    } 
} 
+0

merci, liens très intéressants. Et une explication très intéressante sur la combinaison des points Fivestar et User. Je vais jouer avec ces modules. merci – aneuryzm

+0

Je vérifie les paramètres de points, et je ne vois pas comment mettre à jour le score des utilisateurs si ses commentaires ou messages (nœuds) sont évalués. Pourriez-vous me donner un aperçu à ce sujet? – aneuryzm

+0

Le module qui intègre Vote API avec User Points est User Points Voting API (http://drupal.org/project/userpoints_votingapi). – kiamlaluno

1

Les Drupal Fivestar fonctionne très bien. Le code

+0

ok j'ai trouvé "fivestars supplémentaires" module pour évaluer les commentaires. Il n'est pas encore clair si je peux calculer une note d'utilisateur à partir de ses notes/commentaires. Je ne veux pas évaluer directement les utilisateurs, mais calculer la note de leurs publications. – aneuryzm

+0

Le Fivestar fonctionne sur les nœuds. Autant que je sache, drupal everyting est un noeud. Imho cela devrait fonctionner pour vos buts. – gearsdigital

+0

"Fivestars extra" fonctionne sur les commentaires (c'est une extension). Je vais vérifier si je peux calculer les points utilisateurs avec ces modules merci. – aneuryzm

Questions connexes