Notation d’articles SPIP

Ce module propose un système de notation (rating) des articles SPIP depuis l’espace public.

Présentation

Correctement installé (voir http://www.spip.net/fr_article3396.html), ce plugin permettra aux visiteurs de noter vos articles 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).

Comment ça marche ?

Le plugin gère 2 tables :

  • NOTATIONS : qui contient les notes saisies par visiteur, avec les champs suivant :
    • #ID_ARTICLE : l’article noté ;
    • #ID_AUTEUR : l’auteur (s’il est identifié)
    • #IP : l’adresse IP (utile si le visiteur ne s’est pas identifié)
    • #NOTE : la note ;
    • #MAJ : la date de saisie de la note (pas utilisé mais peut-être plus tard...)
  • NOTATIONS_ARTICLES : qui contient la note finale de l’article, avec les champs :
    • #ID_ARTICLE : l’article bien sûr ;
    • #NOTE : la note moyenne (utiliser le filtre (#NOTE pour avoir la note arrondie) ;
    • #NOTE_PONDEREE : la note pondérée (voir plus loin) ;
    • #NB : le nombre de votant.

Vous pouvez scanner 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.

Et dans mon squelette ?

Une seule balise est à ajouter dans votre squelette, dans le fichier article.html (ou dans le fichier article-xx.html pour limiter la notation aux articles de la rubrique xx) : la balise #NOTATION. Elle prend en charge l’affichage et la gestion des notes. Elle se place classiquement sous le titre de votre article...

Attention : la balise doit être placée dans une boucle articles SPIP.

Une autre balise est introduite : #NOTATION_ETOILE{nb}.
Elle permet d’afficher un nombre (la note par exemple) sous forme d’étoiles.

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(-10*moy/(2*coef))) 

Si moy>coef, 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.

Dans l’espace privé

Une nouvelle icône vient s’ajouter au menu Forum. Elle permet d’accéder au paramétrage du plugin : facteur de pondération, limiter la notation aux administrateurs, aux auteurs, aux personnes enregistrées ou à tous.

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.

Et dans mes articles ?

Le plugin propose un certain nombre de modèles à utiliser directement dans vos articles, 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,...>
la note donnée par un groupe d’auteurs (yy,zz...)

Affichage du TopTen

FAQ


-  Comment gérer des critiques ?
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...

-  J’ai déjà un système de notation à partir de mots clés ?
Si vous aviez déjà un système de notation, vous pouvez utiliser la balise #NOTATION_ETOILE{nb} pour homogénéiser l’affichage dans votre site.

Ainsi, si vous référencés des logiciels et que vous voulez attribuer une note pour les graphismes, une pour la compatibilité, une pour la jouabilité, etc. : créez un groupe pour chaque catégorie de note contenant chacun les mots clés 1, 2, 3... correspondant aux notes, puis affectez classiquement ces mots clés aux articles dans l’espace privé.
Vous pouvez alors afficher les notes correspondantes dans vos articles. Par exemple pour le groupe de mot clé jouabilité :

<BOUCLE_groupes(GROUPES_MOTS){titre=jouabilite}>
  <BOUCLE_mots(MOTS){id_article}{id_groupe}>
      Jouabilité : #NOTATION_ETOILE{#TITRE}
  </BOUCLE_mots>
</BOUCLE_groupes>

-  J’aime pas les étoiles !!
C’est votre droit... L’affichage de la note est paramétrable : pour cela, il vous suffit de définir une image notation-on.gif et notation-off.gif dans le répertoire img_pack/ de votre squelette.
Vous pouvez même définir une image différente pour chaque indice de notation : notation-on1.gif, notation-on2.gif, ... et leur pendant : notation-off1.gif, notation-off2.gif, ...

Affichage paramétrable

Vous pouvez également modifier le libellé des notes en surchargeant note_1, note_2,... dans le fichier de langue de votre squelette (lang/local_fr.php ou recopier et modifiez le fichier lang/notation_fr.php du plugin).

Mise à jour v0.2

Cette mise à jour tient compte de quelques remarques faites sur le forum.

Elle ajoute une nouvelle noisette : notation_preferee qui donne le Top Ten pour un auteur donné ou pour la personne connectée (si aucun id_auteur n’est envoyé). De quoi personnaliser un peu plus vos pages...

Afficher les 10 meilleures notes de l’auteur 1 :

<notation|preferee|titre=TOPTen|max=10|id_auteur=1|left>

Afficher les 10 meilleures notes de la personne connectée :

<notation|preferee|titre=TOPTen|max=10|left>

Mise à jour v0.3

Permet de placer plusieurs formulaire de notation sur une page (voter pour plusieurs articles sur une même page).

Corrige un bug d’affichage des étoiles (si plus de 5)...

Mise à jour 1.9.3

Test de portage pour un SPIP 1.9.3... (sans garantie)

Discussion

61 discussions

  • 1

    Bonsoir, ce plugins ne fonctionne pas avec le Squelette The Morning After 1.2.0.Je suis sous Spip 3.0.11.
    Si vous avez une astuce, je suis preneur.En vous remerciant.

    Répondre à ce message

  • 1

    Bonjour tout le monde,

    Pourquoi ne pas stocker un décimal compris entre 0 et 1 correspondant à la note donnée divisée par le nombre total d’étoiles ? Cela permettrait d’éviter le problème des incohérence de notes si le webmaster désire changer l’échelle, non ?

    A bientôt ;)

    Répondre à ce message

  • 1

    Bonjour !

    Déjà merci pour le plugin !

    J’ai un petit soucis. J’utilise le formulaire j’aime/j’aime pas et la notation étoile.
    J’ai souhaité modifier le coefficiant de pondération pour une meilleure notation. seulement les notes ne se réactualisent pas. j’ai vidé le cache mais ça n’a servi à rien.

    Lorsque quelqu’un fait un nouveau vote, le recalcule se fait pour la note. Mais bon j’ai déjà plus de 250 articles et je n’ai pas trop envie de cliquer sur chacun d’entre eux.

    Y a-t-il un moyen de forcer le recalcule de toutes les notes pondérées ? En intervenant directement dans la table ?

    Merci d’avance ?

    Répondre à ce message

  • 1

    Bonjour à tous,

    Je cherche à créer une nouvelle boucle qui afficherait, non pas le top ten des articles les mieux notés, mais le top ten des articles les PLUS notés (ceux qui ont reçu le plus grand nombre de notes, quelque soit la note moyenne).

    Dans modeles/notation_topten.html, j’aurais pensé qu’il suffisait d’enlever le filtre {par note_ponderee} dans la boucle :
    <BOUCLE_not2(NOTATIONS_ARTICLES){statut=publie}{id_rubrique?}{inverse}{par nb}{inverse}{0,#ENV{max,15}}>
    .... mais non hélas ca ne donne pas ce que je veux.

    Qqun peut-il m’aider SVP ?

    MERCI !

    • Bonjour,

      Je pense qu’il ne faut pas mettre le statut ou alors il faut faire une jointure explicite avec la table des articles (car la table notation article ne contient que la référence à l’article).

      <BOUCLE_not2(NOTATIONS_ARTICLES){par nb}{inverse}{0,#ENV{max,15}}> 

    Répondre à ce message

  • 2

    Bonjour,

    j’aimerais savoir comment construire sa boucle article pour faire ressortir le top ten ?

    merci à vous.

    • Il y a des exemples dans les modèles du plugin... en particulier notation_topten...

    • effectivement. désolé j’avais pas vu ! merci.

    Répondre à ce message

  • 1
    norbi90160

    Bonjour,

    Je voudrais mettre un libellé devant les étoiles nommé « NOTE : ».
    Quelle est la méthode pour y parvenir ?
    Actuellement seules les étoiles s’affichent, elles ne sont précédées d’aucun libellé.
    (config : sarka 3.0.4, spip 2.1.15).
    Merci pour votre aide.

    Répondre à ce message

  • 1

    Merçi par le plugin.

    J’ai un spip 1.9.2d avec notation v.0.4 © 2007 et avec

    Ouvrir le vote : à tous

    va bien, avec ce code :

    <div class="formulaire_notation">
        <form style="display: inline; padding: 0pt; border: 0pt none;" enctype="multipart/form-data" id="notation6771" method="post" action="spip.php?page=femitic-ranking&amp;lang=es">
            <div style="display: inline;">
                <button onmouseout="notation_set_etoile(1,1,6771)" onmouseover="notation_set_etoile(1,1,6771)" title="votar" value="1" name="note" type="submit"><img title="" alt="1" id="star-6771-1" src="plugins/notation_192/img_pack/notation-on.gif"></button><script type="text/javascript">$(document).ready(function() { buttonfix(); });</script>
                <input type="hidden" value="6771" id="id_donnees6771" name="id_donnees">
                <input type="hidden" value="" id="content6771" name="content">
                <span class="note">93 votes</span>
            </div>
        </form>
    </div>

    mais avec « Ouvrir le vote : aux personnes enregistrées » le code c’est :

    <div class="formulaire_notation">
    	<img class="notation" style="vertical-align: middle;" title="votar" src="plugins/notation_192/img_pack/notation-on.gif">
    	<span class="note">93 votes</span>
    </div>

    et il ne fonctionne pas :-(

    J’ai besoin de permitir plusiers votations pour le même auteur et avec la IP de le vote a Tous il n’est pas possible :-(

    Help !

    • Bonjour,

      Désolé, mais le plugin ne permet qu’une seul vote par auteur (ou adresse IP). En ouvrant le vote aux personnes enregistré, il faut bien sur être enregistré pour pouvoir voté...

      @+

    Répondre à ce message

  • Bonjour,

    Comment je peux faire un TopTen des articles par rubrique. Càd sur la page rubrique afficher le top10 des articles de la rubrique sélectionnée ?

    Merci

    Répondre à ce message

  • 1

    bonjour,
    dans le formulaire jaime_jaimepas, je voudrais remplacer la valeur des inputs par des images style facebook, mais je n’y arrive pas

    dans le css, j’ai mis dans .formulaire_jaime form .submit, l’image en background,
    et j’ai crée une ligne .formulaire_jaimepas form .submit avec son image

    mais rien ne fonctionne

    si je mets l’image dans un .formulaire_jaime_jaimepas form .submit, j’ai le même qui apparaît en fond évidemment.

    Répondre à ce message

  • 2

    Salut tout le monde,

    1. j’aimerai utiliser ce plugin pour noter des photos dans des galeries... Bonne idée ?

    2. Est il compatible avec Spip 2.1 ?

    D’avance, merci.
     :-)

    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