Salut à tous,

Je suis actuellement en train de bosser sur un site wordpress (thème, plugins, widgets) et les tutos dispo ici m'ont vraiment aidés !

Mais voilà, en ce moment j'essaie de mettre en place un système de votes sur les versions single de mes custom post types et je n'y arrive pas vraiment.

J'ai testé plusieurs plugins pour les modifier ensuite, mais aucun de semble fonctionner comme je le veux…

Ce que j'aimerais avoir :

  • Deux boutons => Un "+" et un "-";
  • Deux span qui affichent les scores => .video-votes-pos et .video-votes-min;
  • Une jauge qui affiche le ratio (comme sur Youtube), j'avais déjà fait le script pour récupérer les valeurs de .video-votes-pos et .video-votes-min et calculer le ratio.

Petites précisions :

  • Seuls les membres connectés peuvent voter (j'aimerais avoir la possibilité de changer cette option);
  • Il est possible de voter plusieurs fois au bout d'un certains temps (style 120 min);

J'étais tombé sur un tuto Tuts+ pour ajouter un système de like mais je n'arrive pas non-plus à le faire fonctionner sur mon thème de façon correcte u_u

J'espère avoir donné assez d'infos, n'hésitez pas à me dire si ça ne suffit pas :)

5 réponses


Artwo
Auteur
Réponse acceptée

J'ai continué d'avancer et je me suis dirigé vers quelque chose assez semblable à ce que tu as proposé.

Vous pouvez retrouver le plugin ici :

Mises à jour :

  • Deux tables aujourd'hui : crp_rating =>

  • cpr_historique =>

N'hésitez à me dire s'il y a des choses à améliorer, tout ça… Je ferais peut-être un panneau d'options plus tard.

EDIT : Le timer est d'une minute avant le prochain vote pour les tests.

Là je ne pense pas que tu trouve un plugin pour faire ça (en tout cas je n'en connais pas) et qui corresponde exactement à tes envie. Le plus simple serait de le coder toi même en créant une table pour stocker les votes et en créant dans ton theme un fichier .php qui sauvegarderait les votes en ajax :)

Artwo
Auteur

Merci pour la réponse, et effectivement : je pensais devoir faire quelque chose comme ça. Mais très franchement je ne sais pas par où commencer…

Est-ce qu'il y aurait des tutos qui pourraient m'orienter, me donner des pistes ? Ou un pseudo-code pour avoir une base sur laquelle travailler ?

Il faudra sans doute stocker les id des utilisateurs et les id des custom post types dans la base et créer la fonction de vote peut-être plus sous forme de plugin pour ne pas alourdire mon thème, qu'en pensez-vous ? D'autres indications peut-être ?

Artwo
Auteur

Salut à tous, petit update.

Alors, après pas mal de recherches j'ai bien avancé et j'ai réussi à faire quelque chose qui fonctionne. N'étant pas développeur, ça n'a pas été de tous repos >_>

Je vous partage ici le lien vers mon plugin de votes :

Vous pouvez le télécharger pour l'essayer. [EDIT : ceci est la dernière version postée sur le thread]

Quelques infos :

  • voici la structure à respecter pour la table 'cpr_rating' (il faut la créer soit-même pour le moment) =>
  • J'ai utilisé la fonction add_action, pour l'afficher sur son post, il faut donc utiliser dans la boucle Wordpress =>
<?php do_action('rating_video'); ?>

Ce que le plugin fait :

  • Ajoute une ligne dans la table qui correspond à l'id du post => Id du poste, votes positifs, votes négatifs, titre du post
  • Affiche les votes positifs et négatifs correspondants au post, affiche un pourcentage de votes positifs en modifiant la width d'une div
  • Permet aux visiteurs (tous les visiteurs) de voter et met à jour en ajax le résultat

Les problèmes/ce qu'il manque :

  • Tout le monde peut voter, j'aimerais pouvoir limiter ça aux utilisateurs connectés, si possible avec une option à cocher dans les paramètres admin;
  • On peut voter autant de fois que l'on veut, j'aimerais ajouter un timer de 120 minutes minimum avant le prochain vote;
  • J'aimerais enregistrer les votants avec la valeur de leur vote (good ou bad) sur les postes mais je ne sais pas comment m'organiser au niveau des tables…
  • Comme je l'ai dit, je ne suis pas développeur et j'ai peur qu'il y ai pas mal de problèmes de sécurité dans ce que j'ai fait, si vous pouviez m'aider là-dessus, ça serait génial

Voilà voilà, je le mettrais surement à disposition de manière un peu plus officiel quand il sera terminé, d'ici là, je vais tacher d'améliorer tout ce bazard :)

_Tu peux rajouter un boolean dans la table user , can_vote par exemple et tu fais une simple condition
_Tu peux mettre une variable dans $_SESSION , par exemple au moment du vote tu rajoutes hasvote = true , et tu fais une condition encore une fois
Alors le plus simple est de créer une table vote ,
avec comme champs
id : l'id du vote
type : good ou bad
user_id : l'id de l'utilisateur qui a liké
post_id : le poste auquel appartient le like