Bonjour,
Je me suis lancé dans le codage de mon propre forum en mysql_* (et non en PDO) mais je bloque au niveau du lu/non lu.
C'est à dire, quand un membre crée un sujet, les autres membres verrons une image qui indiquera que c'est nouveau tant qu'ils
n'auront pas cliqué dessus ou s'ils y a une/des nouvelle(s) réponse(s).
Jusqu'ici, j'ai réussis enfin presque réussi je dois dire, le seul bémol c'est quand ça s'active, les autres forums d'en dessous ont automatiquement l'image news réponse alors qu'il y a que de nouvelles réponses dans un seul forum par exemple.
Comment faire un bon système de lu/non pour un forum ?
Merci d'avance.

3 réponses


Si tu étudies comment sont fait PhpBB et VBulletin par exemple tu remarques qu'il y a une table dans la base de données qui leur est lié, dans laquelle il entrent l'id utilisateur et la dernière date de lecture d'un topic. Ensuite ils comparent avec la date du dernier post dans le topic. Si la date du dernier post est supérieur à celle de dernière lecture, alors le post est nouveau, sinon il a été lu.

Histoire de ne pas surcharger la BDD, il supprime la ligne à chaque fois que le mec lit non ?

Quand la ligne n'existe pas c'est que le topic n'a pas été lu, après pour ne pas trop surcharger, tu peux considérer une date limite du genre "tous les posts non lus depuis 1 semaine seront consignés, les autres seront considérés comme lus". Mais si l'entrée n'existe pas ou si la date est inférieure, le post ne serait pas lu. Ou alors tu n'entres que les lectures depuis ta dernière connexion, et les messages que tu n'avais pas lu à ta connexion précédente seront notifiés comme lus. Enfin tu peux trouver quelque chose qui te correspond.
Beaucoup utilisent également les cookies pour faire ça mais je trouve moins pratique, dans le sens ou si tu te connecte sur un autre pc, les lu/non lu ne seraient pas les mêmes.