Ce plugin est une mise à jour majeure du plugin Notation d’articles destiné à SPIP 2.0. Les principales nouveautés sont les suivantes :
- plugin basé sur les nouveaux formulaires ajax de SPIP 2
- utilisation du script Jquery Star Rating
- notation des articles, des messages de forum ou tout autre autre élément de SPIP (auteurs, rubriques...)
Correctement installé (voir http://www.spip.net/fr_article3396.html), le plugin permettra aux visiteurs de noter les éléments de SPIP directement depuis l’espace public.
La notation se fait de façon classique sous forme d’étoiles cliquables, à l’apparence et au nombre paramétrable (jusqu’à 10).
Mise à jour en spip2
Ce plugin fonctionne à partir de SPIP 2.0beta2. Si vous utilisiez le plugin Notation d’articles (à jour !) avec un SPIP 1.9.2, vous pouvez (après avoir effectué les sauvegardes nécessaires de la base de données) :
- désactiver les plugins,
- mettre à jour votre SPIP en version 2,
- mettre à jour les plugins (CFG et notations) notamment et les activer. Les tables du plugin notations seront alors mises à jour.
Attention : SPIP2 est une version obsolète, c’est désormais SPIP3 qu’il faut utiliser !
Comment ça marche ?
Le plugin gère 2 tables :
- NOTATIONS : qui contient les notes saisies par visiteur, avec les champs suivant :
-
#OBJET
: le type d’objet noté ; (exemple : article) -
#ID_OBJET
: identifiant de l’objet noté (exemple : 28) ; -
#ID_AUTEUR
: l’auteur ayant voté (s’il est identifié) -
#IP
: l’adresse IP (utile si le visiteur ne s’est pas identifié) -
#NOTE
: la note attribuée ; -
#MAJ
: la date de saisie de la note
-
- NOTATIONS_OBJETS : qui contient les statistiques des votes par élément de SPIP :
-
#OBJET
: le type d’objet noté ; -
#ID_OBJET
: identifiant de l’objet noté -
#NOTE
: la note moyenne (utiliser le filtre[(#NOTE|round)]
pour avoir la note arrondie) ; -
#NOTE_PONDEREE
: la note pondérée (voir plus loin) ; -
#NOMBRE_VOTES
: le nombre de votant.
-
Vous pouvez afficher le contenu de ces tables via les BOUCLEs de SPIP.
Comportement :
- On limite à un vote par article et par utilisateur (ou adresse IP lorsqu’on n’est pas enregistré).
- Une personne non enregistrée vote donc sur son adresse IP. Si une même adresse IP vote plusieurs fois, le nouveau vote remplace l’ancien sauf s’il correspond au vote d’un utilisateur identifié qui reste prioritaire (non mais).
- Si l’utilisateur s’est identifié, on enregistre son id_auteur, ce qui permet de gérer un vote des auteurs (vote de la rédaction, critiques...).
- Vous pouvez limiter le vote aux personnes enregistrées au préalable, aux auteurs, aux seuls administrateurs ou l’ouvrir à tous.
Proposer un vote
Il suffit d’indiquer dans ses squelette d’afficher le formulaire de notation :
<BOUCLE_art(ARTICLES){!par date}{0,10}>
#TITRE -- notez cet article #FORMULAIRE_NOTATION<br />
</BOUCLE_art>
#FORMULAIRE_NOTATION
s’applique automatiquement sur le type de boucle dans lequel il est inscrit, ainsi, il s’appliquera sur un auteur dans une boucle AUTEURS, ou permettra de voter un message de forum sur une boucle FORUMS.
Il est cependant possible de forcer le type et l’identifiant de l’objet à noter en indiquant les deux paramètres objet et id_objet : #FORMULAIRE_NOTATION{rubrique,#ID_RUBRIQUE}
Le plugin propose les variantes de formulaires suivantes :
-
#FORMULAIRE_JAIME_JAIMEPAS
permet aux visiteurs de voter pour ou contre et de retirer leur vote (suivant la configuration). -
#FORMULAIRE_JAIME
permet aux visiteurs de voter pour ou de retirer leur vote (suivant la configuration).
Afficher un vote
Par défaut, la balise #FORMULAIRE_NOTATION
affiche une note de la moyenne pondérée de l’élément. Une personne pouvant voter peut cliquer une étoile pour enregistrer son vote. Une personne ne pouvant pas voter ou ayant déjà votée (selon la configuration) pourra simplement voir la moyenne sans pouvoir cliquer.
Il est possible d’afficher des notes données sans utiliser le formulaire en utilisant la balise #NOTATION_ETOILE{#NOTE}
, à laquelle on transmet la note à afficher.
Affichons la liste des derniers votes de visiteurs enregistrés (id_auteur>0) de l’article en cours :
<BOUCLE_dernieres_notes_article(NOTATIONS){!par maj}{0,5}{id_article}{id_auteur>0}>
- <BOUCLE_a(AUTEURS){id_auteur}>#NOM</BOUCLE_a>, Note #NOTATION_ETOILE{#NOTE}<br />
</BOUCLE_dernieres_notes_article>
Qu’on peut simplifier en forçant une jointure sur la table auteurs :
<BOUCLE_dernieres_notes_article(NOTATIONS auteurs){!par maj}{0,5}{id_article}>
- #NOM, Note #NOTATION_ETOILE{#NOTE}<br />
</BOUCLE_dernieres_notes_article>
Etre dans la moyenne
Pour trier les articles (ou autre élément) selon les critères de notation, par nombre de vote, moyenne ou moyenne pondérée, il est conseillé d’utiliser un critère spécifique {notation}
. Ce critère effectue la jointure (liaison entre les tables) et les calculs.
Ainsi, la présence de {notation}
permet d’utiliser {!par moyenne}
:
<BOUCLES_messages(FORUMS){id_article}{notation}{!par moyenne}>
#TITRE du message, #NOTATION_NOMBRE_VOTES votes, #NOTATION_ETOILE {#NOTATION_MOYENNE}<br />
</BOUCLES_messages>
La boucle précédente va lister tous les messages de forums d’un article, même ceux qui n’ont pas reçu de notes (d’un point de vue SQL, c’est un LEFT JOIN qui est effectué). Pour afficher uniquement les messages ayant reçu des votes, il est possible de transmettre une comparaison au critère notation, ici {notation nombre_votes>0}
:
<BOUCLES_messages(FORUMS){id_article}{notation nombre_votes>0}{!par moyenne}>
#TITRE du message, #NOTATION_NOMBRE_VOTES votes, #NOTATION_ETOILE{#NOTATION_MOYENNE}<br />
</BOUCLES_messages>
Pour certains cas, vous devrez utiliser la table NOTATIONS_OBJETS
pour afficher vos statistiques. Vous pouvez utiliser les modèles prédéfinis (dans le dossier /modeles du plugin) ou vous en inspirer selon vos propres besoins.
Qu’est-ce que la pondération ?
Le but est d’accorder une meilleure note aux articles ayant reçu plus de votes : il est injuste qu’un article ayant reçu 1 seul vote de 5 soit mieux classé qu’un article ayant reçu 100 votes et une moyenne de 4,99 (non ?)...
On choisit la formule :
moy_ponderee = moy * (1-EXP(-5*nb_votes/ponderation)))
Si nb_votes>ponderation
, on a moy_ponderee~moy
, ;
sinon moy_ponderee<moy
, .
Le principe de la pondération est de pénaliser les articles ayant eu peu de votes... et faire sortir en premier ceux ayant suscité le plus d’intérêt.
Le facteur de pondération est le nombre de votants que vous jugez pertinent, en fonction de la fréquentation et du nombre de votes sur votre site (tout article ayant un nombre de votes inférieur au facteur de pondération verra sa note pénalisée), il est réglable dans l’espace privé.
Pour désactiver la pondération, choisissez un facteur de pondération de 1.
Configuration dans l’espace privé
Une nouvelle icône vient s’ajouter au menu Activité [1]. Elle permet d’accéder au paramétrage du plugin : facteur de pondération, ouvrir la notation aux administrateurs, aux auteurs, aux personnes enregistrées ou à tous. Une option permet de définir si une personne peut modifier sa note après avoir voté ou non.
Le nombre d’étoiles que vous désirez afficher (la valeur max de la note, entre 1 et 10) doit être fixée en début de vote afin de ne pas créer d’incohérences dans la notation.
Les modèles du plugin
Le plugin propose un certain nombre de modèles à utiliser directement dans vos articles ou squelettes, regardez les, modifiez les pour les adapter à vos propres besoins :
- <aut33|notation|id_article=10|left>
affiche la note de l’auteur 33 pour l’article 10
- <notation|topten|max=10|titre=le TopTen>
affiche le topten (les 10 articles les mieux notés)
- <notationxx|statistiques|left|titre=Statistiques>
affiche les statistiques (nombre de votes) pour l’article xx.
- <notationxx|tableau|id_auteur=yy,zz,...>
affiche la note donnée par un groupe d’auteurs (yy,zz...)
- <notation|preferee|titre=TOPTen|max=10|id_auteur=1|left>
affiche les 10 meilleures notes de l’auteur 1
FAQ
Comment gérer des critiques ?
Historiquement (issu du plugin notations d’articles), il est possible de gérer des critiques au travers des forums de l’article : dans ce cas, le titre du post doit contenir le texte [notation]
. Les points positifs doivent être précédés de [+] et les points négatifs de [-].
À ce titre, un filtre est disponible : notation_critique
pour supprimer les balises et remplacer [+] et [-] par une image d’img_pack (notation-plus.gif et notation-moins.gif), par exemple [(#TITRE|notation_critique)]
permet de supprimer [notation] du titre du post.
Un exemple d’utilisation est donné par le modèle <autxx|critique|id_article=yy>
qui affiche la critique de l’auteur xx pour l’article yy...
Dernières évolutions du plugin
Ajoûts du dec 2010 :
Les balises #NOTATION_NOMBRE_VOTES, #NOTATION_MOYENNE et #NOTATION_MOYENNE_PONDEREE peuvent s’écrire avec une référence de boucle :#_toto:NOTATION_MOYENNE_PONDEREE
Elles peuvent être utilisées en dehors du contexte d’une boucle ayant le critère {notation}
. Il faut alors leur passer le contexte en paramètre :#NOTATION_MOYENNE_PONDEREE{article,12}
Discussions par date d’activité
158 discussions
Serait il possible d’utiliser cette notation séparément pour plusieurs éléments figurant dans la même page (dans le cadre d’une évaluation) ?
Il faudrait aussi pouvoir appeler la notation à partir du texte de l’article ?
Qu’en pensez vous ?
Salut, ce n’est pas possible en l’état car les notations sont attachés aux objets de SPIP (articles, auteurs, etc). Par contre, il est possible de propose plusieurs votes ou critères d’évaluation avec le plugin éponyme : http://contrib.spip.net/Evaluations-d-elements-SPIP
Merci pour l’information, ce plugin évaluation semble effectivement correspondre à mes besoins.
Merci pour l’info, ce plugin semble effectivement correspondre à mes besoins.
Répondre à ce message
J’utilise ce plugin avec bonheur. Je souhaitais savoir si c’est possible de l’utiliser aussi que partiellement.
J’attribue des notes à des livres et au lieu d’afficher par ex 4.2 sur 5 sur la notice du livre http://www.bibliosurf.com/Envoyee-speciale.html, je trouve que ce serait plus parlant les 5 étoiles de ce plugin.
Serait-ce du domaine du possible de combiner ?
D’avance merci.
Répondre à ce message
Bonjour,
J’ai un problème après le passage de plusieurs sites de 3.0.17 à 3.0.20, les plugins notation ne fonctionnent plus (clic sur l’étoile sans effet). Une idée ?
Merci
Salut, peut-être une erreur javascript visible dans firebug ou les outils de dev de Firefox ? Quelle est l’url de ton site ?
Merci b_b de ta réponse rapide.
En fait, j’ai une erreur dans l’espace privé au niveau de l’affichage des notes :
1 Aucun squelette modeles/inc-notation-preferee-site n’est disponible... ../plugins/auto/notation/v2.0.9/prive/squelettes/contenu/notation.html _notes_aut 23
J’ai vérifié le chemin est bon sur mon serveur.
Dans un cas, je suis en 3.0.20 avec le plugin en 2.0.9 et ça ne marche plus (par contre il me met en inactif le 2.0.4 ’obsolète’)
Dans un autre cas, je suis resté en 3.0.17 avec le plugin en 2.0.6 et là ça fonctionne correctement.
Je te remercie de ton aide.
Ha, je ne comprends pas trop le rapport avec ce que tu dis dans ton premier message (clic sur l’étoile sans effet). Pour l’erreur que tu signales dans ton dernier message, je vois le problème, il n’y a pas de squelette
modeles/inc-notation-preferee-site
maismodeles/inc-notation-preferee-syndic
. Je cherche une solution, et je te tiens au courant.Je ne sais pas si il y a un rapport, mais quand j’ai vu le bug dans l’espace privé, j’ai naturellement fait le rapprochement avec le fait que mes étoiles côté site sont inopérantes. C’est peut être autre chose (bien qu’avec le même navigateur, ça roule pour d’autres sites) ?
Et c’est toi qui a réalisé ce plugin, je dois te remercier particulièrement, je suis un utilisateur inconditionnel de l’outil ! Un grand merci s’impose !
Re, la version 2.0.10 (qui sera dispo dans la journée) devrait corriger le bug que tu signalais dans la page de l’espace privé, cf :
http://zone.spip.org/trac/spip-zone/changeset/92495
Je ne suis pas le seul auteur du plugin, mais de rien :)
Répondre à ce message
Possibilité de voter 1 fois par jour ?
Est-ce qu’il serait simple de transformer le plugin pour permettre de voter une fois par jour ?
Oui, c’est un CVT comme un autre, tu peux donc faire ce que tu veux dans verifier(). Perso j’ai déjà limité le nombre de votes à 5 par auteurs sur un site. Seule contrainte, limiter le vote aux personnes enregistrées, sinon ta limite peut être contournée trop facilement :p
Répondre à ce message
Bonjour,
Je cherche à dupliquer le formulaire NOTATION mais le fait de copier le html et le PHP sous un autre nom ne suffit pas.
Je peux appeler le nouveau nom à travers une balise d’insertion mais le comportement de sélection des étoiles ne fonctionne plus ou du moins après sélection, il n’est pas rafraîchi.
Auriez-vous une méthode pour cela ?
Ps : ma préoccupation est de changer a minima les étoiles par autre chose selon les rubriques mais la structure du CSS est avec une DIV nommée et je ne trouve pas comment faire autrement qu’en dupliquant ce formulaire.
Répondre à ce message
Bonsoir,
J’ai cette erreur qui s’affiche sur les articles dans le site privé, pour autant le plugin à l’air de bien fonctionner sur la partie publique (JAIME_JAIMEPAS est utilisé) !
Erreur SQL 1054
Unknown column ’accepter_note’ in ’field list’
SELECT accepter_note FROM spip_articles WHERE id_article=1
Je suis sous SPIP 3.0.17, HTML5 activé et une dizaine de plugins additionnel actifs.
Répondre à ce message
Bonjour,
Merci pour ce plugin super. Suite à une demande expresse j’ai ajouté un formulaire ’JAIME_COEUR’ aui affiche un petit coeur, gris si on n’a pas aimé, rouge si on a aimé. Avec le nombre de ’coeurs’ que compte un objet..
On peut aussi bien sûr ’dé-aimer’ l’objet en cliquent sur le coeur rouge’
... interessant pour vous de l’ajouter ?
fwd
Je suis d’accord :)
Y a la même chose avec des noisettes ? ^^
ok c’est prêt .. mais qqun aurait un picto de noisette svp ? :/
Ah mais c’était une blague pour les noisettes !
C’est très bien le cœur :)
bon dommage :/ j’aimais bien ..
c’est commité .. j’espère que ça servira ..
le code pour le coeur c’est #FORMULAIRE_JAIME_COEUR
Répondre à ce message
Bonjour
super plugin, et j’ai une petite question :
comment relancer le calcul des notes pondérées de tous les articles après avoir modifier le facteur de pondération ?
J’arrive pas à trouver.... Si quelqu’un a une idée.
Merci
Répondre à ce message
Bonjour, tout d’abord merci pour cet excellent plugin.
Une question pour un de mes sites : je souhaiterais afficher les articles les mieux notés, parmi les 40 derniers articles publiés.
Ma boucle actuelle affiche les meilleurs notes « depuis toujours » :
Quelqu’un saurait-il comment traiter ce besoin svp ? Merci d’avance.
juste ça non ?
<BOUCLE_not(ARTICLES){notation nombre_votes>0}{!par moyenne}{!par date}{0,40}>
Répondre à ce message
Bonjour,
Mon problème n’a pas été traité sur ce forum à ma connaissance. Sur mon site de boxe les différents articles sont notés : compétitions, clubs, champions. Je voudrais afficher un classement des champions les mieux notés, un « top 10 », et j’ai repris pour cela le modèle inclus dans le plugin :
Cela fonctionne bien, mais mon classement mélange des champions et des clubs ! Quel est le code à inclure dans ce modèle pour isoler les notations d’un secteur donné (en l’occurrence le secteur des articles de champions) en excluant donc les autres notations des secteurs des articles des clubs et des compétitions. J’ai fait différentes tentatives en jouant sur id_secteur=XX mais ça n’a rien donné. En mettant ce paramètre dans la première boucle, les résultats ne se sont plus affichés. Et en le mettant dans la deuxième boucle, la deuxième ligne du classement (qui contient un club et non un champion) est restée vide.
D’avance, merci de votre aide.
Christian.
Salut, tu peux le faire en t’inspirant de la partie de la doc qui mentionne « en forçant la jointure ». Cela donne :
<BOUCLE_not(NOTATIONS_OBJETS articles){articles.id_secteur=1}{par note_ponderee}{inverse}{0,#ENV{max,10}}>
Et hop :)
Parfait ! Ça fonctionne.
Un grand merci.
Christian.
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |