Des achievements (succès ou badges) pour mon site

Des achievements (succès ou badges) pour mon site - PHP - Programmation

Marsh Posté le 14-04-2019 à 15:28:16    

Salut!
 
Je suis entrain de programmer un site web pour les élèves qui propose des exercices de math, français, etc.
 
Afin de les motiver davantage, je souhaite coder un système de badges qu'on peut obtenir en faisant diverses actions (avoir tel score à tel exercice, avoir fait 10 exercices de français, etc.)
 
J'ai une table badges connectée en many To many avec ma table users.
 
Mon soucis se situe au niveau de l'obtention des badges. A votre avis, dois-je parcourir TOUS les badges à chaque rafraîchissement de la page en vérifiant à chaque fois que les conditions sont remplies ou non pour en obtenir un? Ou pensez vous à une autre méthode...
 
Merci!


---------------
----** Mon feed-back **----
Reply

Marsh Posté le 14-04-2019 à 15:28:16   

Reply

Marsh Posté le 14-04-2019 à 19:34:53    

Merci de la réponse!
 
J'ai déjà une table user_badges en fait, avec un champ date et tout.
 
Mon soucis est plutôt de la remplir maintenant.
 
Je pensais faire, à chaque chargement de page, en fin de script, une boucle qui teste pour chaque badge, si les conditions sont remplies pour le déverrouiller et si l'utilisateur ne l'a pas déjà. Si tout est ok on crée une ligne dans user_badges.
Mais cela fait beaucoup non? Je vais faire appelle à chaque tour de boucle à pas mal d'appels MySQL, etc. (Les statistiques à testée pour obtenir les badges sont dans différentes tables).
 
M'enfin toute façon je vois pas d'autre façon de faire


Message édité par Hig2 le 14-04-2019 à 19:52:55

---------------
----** Mon feed-back **----
Reply

Marsh Posté le 15-04-2019 à 07:38:37    

Perso plutôt que réinventer la roue j'aurai utilisé une plateforme comme moodle https://fr.wikipedia.org/wiki/Moodle
qui a ce genre de fonctionnalité intégrées https://docs.moodle.org/3x/fr/Badges

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed