la dernière fois on avait parlé d´un système de "posts vues ou pas" pour nos forums
Chuis entrain de réfléchir la dessus, et c´est pas evident.
j´ai une idée mais c´est pas génial :
Créer une table "topic_read", un champ : "last_post_read" dans la table user, et un champ "last_post" dans la table messages.
A chaque fois qu´un user enregistré ouvre un thread, on regarde à quand remonte son dernier topic lu.
Si son dernier topic lu est inférieur au dernier post du topic -> image rouge.
Si son dernier topic lu est supérieur, -> query sur la table "topic_read" en fonction de son pseudo, si il y a un enregistrement à son nom pour le topic concerné -> image jaune, sinon image rouge et on incrémente la table avec son nom, la date et l´id du topic.
Après encore, query sur la table "topic_read", et on supprime tout les message dont la date est plus vielle de 3jours ( pour alléger la table...)
Tout ce merdier ça me prend 0.05secondes d´execution en local, donc ça va encore mais ça ne demande qu´à etre amelioré...
J´ai étudié le fonctionement d´un autre forum : XMB
Eux ils utilisent un système beaucoup plus simple mais vraiment pas efficace :
Si le topic a été posté y a moins de 24heures, on affiche rouge, mais si la date de la dernière visite de l´user est supérieur à la date du dernier post -> on affiche jaune.
Franchement c´est trop basic...
Dans les deux cas, le champ "last_post_read" de la table user est incrémenté pendant les stats ( qui est en ligne ? )
dans la table "online" on incrémente les users et les membres connectés avec leurs infos.
Pendant l´affichage des stats, on supprime tout les users dont leur dernière action remonte à + de 5minutes, -> si membre, on incrémente le champ "last_topip_read" de la table membre avec la date de sa dernière action.
Voilou, si t´as cherché, et que t´as une meilleur solution -> fais péter ; )