SPIP - Contrib

SPIP - Contrib

[ar] [en] [es] [fr] [it]

287 visiteurs en ce moment

fontsizeup fontsizedown
[139 commentaires]

Notation d’articles SPIP

dimanche 23 septembre 2007, par RealET, Viglino Jean-Marc

  • Digg
  • Del.icio.us
  • Facebook
  • Google
  • Technorati
1 vote

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

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|round)] 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...)

GIF - 7.5 ko
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...

GIF - 4 ko

- 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é :

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

GIF - 3.2 ko
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)

Retour en haut de la page

139 Messages de forum

Voir toute la discussion

Pages 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |...

  • Répondre à ce message

    6 novembre 23:28 , par Matthieu Marcillaud

    Voilà qui est fait en version 0.6, décrit dans l’article Notation d’éléments SPIP.

  • Répondre à ce message

    4 novembre 22:45 , par chryjs

    Je ne suis pas affolé... je l’utilise avec SPIP 2.0 pour un site déjà en ligne dont je peux donner l’url en privé (pas de pub ici). Et j’en suis fort satisfait... pour le moment :)

  • Répondre à ce message

    4 novembre 15:44 , par Matthieu Marcillaud

    Chris, ne t’affole pas trop encore, je suis en train de le recasser une nouvelle fois...

    Merci pour ta précision sur affichage final, je n’avais pas fait attention qu’il faut des js en dehors du formulaire, je corrigerai dans la foulée.

    En ce moment, la version de dev n’est plus compatible 1.9.2 (il faut utiliser les zips fournis pour ça). Je suis en train de transformer le plugin pour utiliser les fonctions de SPIP 2.0 et particulièrement pour rendre générique la notation quelque soit l’objet noté (pour l’instant, on peut noter les articles, comme le signale cet article, et les forums (comme ne le dit pas l’article, qui furent ajoutés par b_b), mais va faire bien mieux... On pourra noter une table (KIKOULOL) tiens, pourquoi pas !

  • Répondre à ce message

    26 octobre 16:19 , par chryjs

    Par rapport à la documentation il y a des "choses" qui ont disparu dont la balise #NOTATION ... :-))

    ou préciser que #NOTATION_ETOILE{n,id} prend 2 paramètres : n qui est la note (récupérée par la valeur de #NOTE par exemple) et id qui est une combinaison du type article#ID_ARTICLE ou auteur#ID_AUTEUR

    Le gros soucis c’est l’inclusion de squelettes !!!

    Exemple si dans article.html j’ai un :

    <INCLURE{fond=inc-art}{id_article}>

    et dans inc-art.html

    <BOUCLE_not(NOTATIONS ARTICLES){id_article}>
            [(#NOTATION_ETOILE{#NOTE,article#ID_ARTICLE})]
    </BOUCLE_not>

    Ca ne fonctionne pas (ou mal). Cause l’#INSERT_HEAD pourtant présent dans article.html, après calcul ne contient pas les éléments suffisants... encore moins pour mettre le formulaire et c’est normal quand on regarde la façon dont est calculé l’#INSERT_HEAD... il fait un test qui est forcément faux lorsque #FORMULAIRE_NOTATION n’est pas utilisé !!! :((

    Je propose de supprimer ou de modifier le test ligne 14 dans notation_affichage_final de notation_pipeline.php ou de rajouter un <div class="formulaire_notation dans notation_fonctions.php... au choix. D’ailleurs les balises input qui se baladent toutes seules ... :((

    PS : Pour s’en sortir sans code php il suffit de mettre cela dans le squelette (les div sont nécessaires) :

    <div class="formulaire_notation">
    #NOTATION_ETOILE{#NOTE,article#ID_ARTICLE}
    </div>

    Joli plugin néanmoins ;-)

  • Répondre à ce message

    18 octobre 14:59

    Nickel ;) Çà fonctionne !! MERCI ET BONNE CONTINUATION

  • Répondre à ce message

    16 octobre 14:32 , par Cymon

    Bonjour, je viens de tester la nouvelle ancienne version et les étoiles s’affiches, mais il ne charge pas les fonctions javascripts, j’ai pourtant mis #INSERT_HEAD dans la tête.

    - je suis avec SPIP 1.9.2d
    - J’ai testé avec cfg activé et désactivé

    En plus le plugin me blog sur la page plug-in du panneau d’administration. Merci.

  • Répondre à ce message

    16 octobre 08:36 , par Viglino Jean-Marc

    Bonjour,
    La fonction sql_countsel n’apparait que dans la v.1.9.3... J’ai placé une ancienne version en téléchargement qui devrait mieux marcher.

    @+

  • Répondre à ce message

    16 octobre 01:18

    Bonjour, j’ai un petit soucis, un message d’erreur apparait :

    Fatal error : Call to undefined function sql_countsel() in notation.php on line 54

    ps : Spip 1.9.2 notation_192(v0.4) installer et paramétré avec #INSERT_HEAD dans inc-head.html. J’utilise le squelette Iensp et la balise #NOTATION dans article.html. La balise #NOTATION_ETOILE5 fonctionne.

    Merci d’avance

  • Répondre à ce message

    14 septembre 22:27 , par Xav

    Salut,

    Personne n’a d’idées ? c’est dommage, j’aimerai bien utiliser ce plugin !!

  • Répondre à ce message

    10 septembre 17:03 , par Viglino Jean-Marc

    Bonjour,

    Il faut modifier la ligne 21 du modèle notation_topten :

    en

    Il suffit alors d’appeler le modèle avec l’option id_rubrique=n pour n’afficher que le top10 de la rubrique n...

Pages 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |...

Répondre à cet article

Retour en haut de la page

Ça discute par ici

SPIP | Squelette | | Plan du site | Suivre la vie du site RSS 2.0