Notation d’éléments SPIP

Ce plugin propose un système de notation des éléments de SPIP depuis l’espace public.

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)

Le modèle topten


-  <notationxx|statistiques|left|titre=Statistiques>
affiche les statistiques (nombre de votes) pour l’article xx.

Le modèle statistiques


-  <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...

Le modèle de critique

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}

Notes

[1Menu Forum en SPIP2.

Discussion

158 discussions

  • 1

    Bonjour

    Je souhaiterais savoir si je peux noter des sites syndiques avec ce plugins ?

    • Bonjour,

      Comme indiqué dans l’article ci-dessus :

      notation des articles, des messages de forum ou tout autre autre élément de SPIP (auteurs, rubriques...)

      ...

    Répondre à ce message

  • Salut salut,

    J’essaye de changer le nombre de vote dans la base de donnée (ex : 500000) mais à chaque nouveau vote, le nombre réel réapparait.

    Peux t-on modifier le nombre de vote ?

    Merci !

    Répondre à ce message

  • bonjour,
    je souhaiterai connaitre le code de la bouche à afficher dans le fichier inc_rubrique_articles.html afin d’afficher la note de cet article,

    Merci de votre réponse ^^

    charles.

    Répondre à ce message

  • 4

    Bonjour,

    Je me retrouve avec le problème d’affichage des boutons radios, je suis en 2.06, j’ai bien supprimé, recréer les 2 tables du plugin, changer le 2.6 en 2.0 ou quelquechose comme ça dans la table métas.

    J’ai aussi désactivité un à un mes plugions couteau suisse, fckeditor... et les réactiver un à un ainsi que les modules. Avec ou sans les plugins, les radios apparraissent...

    Je ne suis pas sur, mais il se pourrait que ça bloque à cet endroit :

    var cs_prive=window.location.pathname.match(/\/ecrire\/$/) !=null ;

    Sinon, un lien pour voir tout ça... : http://www.trenditude.fr/article709.html

    • Bonjour,

      Ta page génère des erreurs javascript qui bloquent le plugin notation. Comme tu sembles t’occuper d’un site professionnel je pense que tu as les compétences pour résoudre ces deux petites erreurs...

      ++

    • C’est mon site, et non, moi je suis un simple étudiant passionné, d’habitude je trouve des solutions, mais là... google ne trouve aucune référence à mon erreur, pas une piste !

      Je n’aime pas quémander, mais juste une piste serait la bienvenue...

      +

    • marcimat

      Bon, je vois que tu as corrigé tes bugs js. Je ne sais pas si tu connais, mais « Firebug » un plugin pour Firefox te seras très utile pour les détecter et les corriger...

      Sinon, il faut que tu penses à mettre à jour SPIP et ses plugins de temps en temps... Parfois, ça corrige des failles de sécurités ! (SPIP 2.0.7, CFG 1.11) et le plugin Champs Extras + Interfaces ont été mis à jour aussi (correction de bugs)...

      Bonne chance pour ton site que je trouve très bien mis en page et joli (exception du nuage de tags bleu/violet et du pied de page qui bug avec les icones).

    • Bon, problème réglé...

      A l’aide de la console javascript de chromium...

      Il s’agissait d’une toute petite erreur sur une classe « corner » non définie et donc « null », mais qui devenait bloquante pour le plugin notation...

      Pour ceux qui cherchent des exemples d’implémentations du plugin, en voici un dans un portfolio de type slideshow, avec notation en surimpression dans un cadre semi-transparent : ici on notte les photos de manière individuelles...

      Portfolie maillot de bain mode été : ici

      A priori, il passe sur ie7, chrome, et firefox...

      ++

    Répondre à ce message

  • niksam

    ca marche nickel,

    Merci !

    Répondre à ce message

  • 1
    niksam

    Bonjour,

    J’ai un soucis,
    J’ai une boucle simple :

    BOUCLE_articles(ARTICLES) id_rubrique par dateinverse pagination

    // AFFICHAGE DE MES ARTICLES

    #NOTATION_ETOILE(#NOTE)

    BOUCLE_articles !

    Mais toutes mes étoiles sont grise, alors qu’il y a bien des votes d’enregistré.

    Lorsque je fais : #FORMULAIRE_NOTATION le formulaire s’affiche correctement, mais je voudrais juste les étoiles sans la possibilité de pouvoir noté

    Dois-je mettre #NOTATION_ETOILE#NOTE dans une boucle ?
    Pouvez vous m’aider ?

    Je n’ai pas mis les accolade et les « supérieure, inférieure » le textarea du commentaire l’interprète ;)

    Merci

    • salut, perso’ j’ai fait ça, et ça marche :

      <BOUCLE_dernieres_notes_article(NOTATIONS){!par maj}{0,1}{id_article}>
      #NOTATION_ETOILE{#NOTE}
      </BOUCLE_dernieres_notes_article>

      si ça peut t’aider :)

    Répondre à ce message

  • 1
    CdChar

    Bonjour,
    La réponse est sans doute évidente, mais je ne trouve pas l’icone dans le menu forum, pour configuration du plugin.
    Le menu forum est-il celui de « Configuration—> interactivité » ?
    ( spip 2.0.7)
    Merci pour votre aide

    • Bonjour,

      La page de configuration est accessible à l’adresse ecrire/ ?exec=notation

      Voir la capture d’écran ci-jointe.

      ++

    Répondre à ce message

  • 1

    Bonjour,

    J’ai remarqué que le plugin ne fonctionnait pas dans un Spip mutualisé. Le problème vient de formulaire/notation.php où il faut remplacer tous les « spip_qqch » par $GLOBALS[’table_prefix’].« qqch ».

    • marcimat

      Non non, ça doit marcher, si ça marche pas c’est un problème de SPIP, pas de notations.

    Répondre à ce message

  • 2

    Bonjour a tous

    Lorsque j’etais sous spip 192 j utilisais Notation et tout fonctionnais parfaitement.

    Maintenant je suis sous spip 2.0.2 et je galere pour le reinstaller. En fait je m’apercois qu il ne me créé plus les tables sql et du coup j’ai des erreur a l’utilisation . Comment puis je faire pour résoudre ce problème ?

    Merci d’avance pour votre aide

    Stapsien

    • Rectificatif ! je viens de trouver la cause de la non création des tables sql de Notation. Pour résoudre ca j’ai vidé la table spip_meta ce qui a eu pour effet de reinitialiser l’ensemble des paramètres de tout le site (+plugins). Du coup a l’install de Notation les tables ce sont bien créées.

      Reste que les notations ne sont toujours pas prisent en compte.

      Peut être cela vient il de mon squelette sarka-spip qui intègre dans sa configuration les boucles de Notation ???

      Si quelqu’un à une idée je l’en remercie par avance.

      Stapsien

    • Thomas B

      J’ai eu le même que toi mais après une mise à jour vers spip 2 ayant déjà eu l’ancienne version du plugin notation, l’update des tables existantes ne s’était pas fait.
      J’ai décider de supprimer complètement les anciennes tables et de désactiver le plugin puis de le reactiver mais ca ne marchait pas, il fallait juste remettre à ’0.0’ la version de notation_base_version dans la table spip_meta.

      Pour info :
      DROP TABLE spip_notations ;
      DROP TABLE spip_notations_articles ;
      DROP TABLE spip_notations_objets ;
      UPDATE spip_meta SET valeur=’0.0’ WHERE nom=’notation_base_version’ ;

      Et à la réactivation du plugin il m’a bien créé les tables et je n’ai plus eu d’erreur.

    Répondre à ce message

  • 4

    Bonjour !

    Bonjour,
    Je suis sous SPIP 2.0.6 [13835] avec le plugin version 0.6.3 [27517].

    Depuis la dernière mise à jour que j’ai effectuée il y a deux jours, j’ai un souci avec le Plugin sous FF et IE.
    Via mon PDA et opéra mobile, même combat. En revanche quand je passe sous chrome cela fonctionne.
    Il « n’enregistre » plus les votes sur un des sites dont je m’occupe (http://www.oftt.eu).
    J’ai refait un update ce matin... vidé le cache... rien de nouveau !

    Quand je passe sur un autre site utilisant le plugin comme spip-contrib (je ne sais pas si c’est les mêmes versions), le plugin fonctionne. Ca ne vient donc pas de mes navigateurs IE et FF dont j’ai bien entendu vérifié les réglages (pas de neutralisation des javascript...)

    J’ai pensé à un mauvais codage de mes CSS (je ne suis pas pro et je galère pour comprendre les subtilités de la compatibilité IE/FF), mais je ne suis pas très bon en code non plus et je ne saurais pas vous dire exactement où se situe la « panne »...

    Je ne sais pas si c’est le plugin lui même, mais comme ça remonte à ma dernière mise à jour...

    Avez vous une idée pour m’aider un peu ? Je me casse la tête dessus depuis deux nuits et je ne trouve rien...

    Merci !

    • Bonjour,

      Utilises-tu une version à jour du plugin ? Fais une mise à jour pour voir ce que ça donne. Comme je le disais dans mon précédent message j’ai corrigé un bug du plugin hier soir...

      Et comme je le disais hier soir sur un autre forum de contrib :

      Au passage, pensez toujours à mettre à jours vos plugins avant de poser une question dans un forum.

      ++

    • J’ai refait un update ce matin... vidé le cache... rien de nouveau !

      Merci de tes conseils ! ;-)

      J’ai re-refait la manip ci dessus y’a 15 min...
      Toujours rien... Sauf sous chrome...
      Je vais me replonger dans mes CSS...

    • Salut,

      Je viens de voter pour l’article 115 de ton site et cela a bien fonctionné sous FF 3.0.8 ...

    • J’ai (depuis) trouvé « la panne », c’était bien dans les CSS (une histoire tout bête de superposition et de marges...)
      Au temps pour moi, et encore merci pour les conseils et la programmation de ce plugin !

    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 :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

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.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom