[Conception] Forum : messages lus & non lus

Discussion dans 'Web, design' créé par Ahava, 1 Septembre 2006.

Statut de la discussion:
Fermée.
  1. Offline
    Ahava Revenant
    Bonjour,


    Je suis en train (ou plutot je vais commencer) à coder un forum moi-même mais je ne sais pas trop bien comment gérer les messages lus/non lus sur celui-ci.

    Je ne sais pas comment c'est traité sur des forums "connus" tel que VBulletion ou PHPBB, mais j'hésite entre ceci :


    • Enregistrer chaque message lu par chaque membre dans la BD (MySQL)
    • Même chose mais dans dans des fichiers, un par membre cette fois-ci
    • ...


    Comme vous pouvez le voir, je ne sais pas vraiment comment implémenter cette fonctionnalité le plus efficacement possible, ce pourquoi je sollicite votre avis :)



    merci :k
    Ahava, 1 Septembre 2006
    #1
  2. Offline
    *Serval Elite
    Dans la DB, ca va te faire une quantité énorme d'enregistrement si beaucoup d'utilisateurs et/ou de posts ;)


    Avec phpBB, c'est enregistré dans un cookie, je suppose qu'ici aussi.



    Sinon, il y aurait également moyen de le faire en variable session, mais alors, comme dans phpBB, si tu fermes ta page, tout sera marqué comme lu ;)
    Tandis qu'avec cookies, tu peux ne pas le marquer comme lu après fermeture de la page :)
    *Serval, 1 Septembre 2006
    #2
  3. Offline
    Ahava Revenant
    Ahhh voila j'avais pas pensé aux cookies, j'ai pratiquement jamais utilisé ça ! :)


    Tu as un exemple d'utilisation d'un tel cookie, et comment y enregistrer qu'un post est lu ou non lu ?
    Ahava, 1 Septembre 2006
    #3
  4. Offline
    *Serval Elite
    *Serval, 1 Septembre 2006
    #4
  5. Online
    Jereck Procrastinateur
    Equipe GamerZ.be
    un cookies avec comme nom l'ID d'un thread et comme valeur, le dernier post lu, ça me semble le plus simple

    et si pas de cookie pour un thread, tous non lus
    Jereck, 1 Septembre 2006
    #5
  6. Offline
    Bingo Beer Addict
    Si je ne me trompe pas, phpBB est plutôt bête et méchant de ce côté là :
    Lorsque tu te connectes, il regarde l'heure de ta dernière connexion, et marque tous les messages plus récents que cette connexion comme non lus, tous les autres comme lus.
    Plutôt simpliste donc !
    Bingo, 1 Septembre 2006
    #6
  7. Offline
    Bingo Beer Addict
    Je ne suis pas sûr que les cookies ce soit mieux que la base de données, il faut voir...
    Si dans la base de données tu sotckes juste l'ID utilisateur, l'ID de la discussion et l'ID du dernier message lu, ça fait un volume de données raisonnable.
    En utilisant la base de données, tu économises du dialogue entre le navigateur et le serveur (l'échange de cookies).
    A mon avis, il est plus rapide d'écrire un enregistrement avec 3 champs (numériques) dans une table que d'envoyer un cookie à l'utilisateur.
    Il faudrait tester en fait.
    Bingo, 1 Septembre 2006
    #7
  8. Online
    Jereck Procrastinateur
    Equipe GamerZ.be
    et franchement foireux si la durée de session est trop courte (un peu comme ici :beuh:)
    Jereck, 1 Septembre 2006
    #8
  9. Offline
    *Serval Elite
    ouep tout à fait (sauf si un install le MOD "keep unread" :p)


    Vrai que des tests pourraient être utiles, même si a première vue je le ferrais en cookies ;)
    *Serval, 1 Septembre 2006
    #9
  10. Offline
    Ahava Revenant
    Ah ouais, ca fait quand meme un enregistrement par user par discussion, mais c'est moins que moi et mes enregistements par user par réponse postée..


    hmm j'hésite.
    Ahava, 1 Septembre 2006
    #10
  11. Offline
    Bingo Beer Addict
    Ca fait plutôt un enregistrement par utilisateur et par discussion lue par cet utilisateur.
    En fait, avant de savoir comment faire, il faut que tu saches précisément comment tu veux que ton forum se comporte.
    Par exemple, si il y a une discussion que je n'ai jamais lue, c'est probablement qu'elle ne m'intéresse pas. Du coup, on peut d'office la marquer comme lue à la date de la dernière connexion, comme dans phpBB.
    Ou alors, les discussions non lues doivent-elles rester non lues jusqu'à ce que je les ouvre ou que je spécifie que je veux marquer toutes les discussions comme lus ?
    Par contre on peut considérer que les discussions que j'ai lues m'intéressent, et ne les marquer comme lues qu'à partir de la date de la dernière lecture.

    Bref, il faut déjà savoir comment tu veux que ça fonctionne.
    Bingo, 1 Septembre 2006
    #11
  12. Offline
    Ahava Revenant
    Je voudrais qu'il se comporte ainsi :

    Une conversation est non lue tant que l'user ne l'a pas lue, elle soit écrite comme non lue, ou si l'user clique sur un lien qui met tous les convers. à lues..


    Un peu comme phpBB avec le mod "keep unread" :)
    Ahava, 2 Septembre 2006
    #12
  13. Offline
    *Serval Elite
    Alors si ton cookie ou ton entrée dans la bdd pour cet user et ce topic n'existe pas, il a rien lu.
    Si il a lu, la bdd (ou le cookie) contient l'id du dernier message.
    Quand il lit un sujet, tu modifies donc la bdd (cookie) pour mettre l'id du dernier message du sujet



    Et quand quelqu'un cliques sur "Marquer tous les sujets comme lus", tu fais l'opération ci-dessus mais pour tous les sujets ;)
    *Serval, 2 Septembre 2006
    #13
  14. Offline
    Bingo Beer Addict
    Juste une petite remarque à propos des cookies : ça n'est pas une bonne solution à mon avis.
    Le problème est que le cookie est spécifique à une machine.
    Je consulte les forums au boulot la journée et chez moi le soir (comme beaucoup de monde je pense), ça m'énerverait pas mal que toutes les discussions soient marqués comme non lues lorsque je me reconnecte de chez moi après avoir tout consulté la journée !
    Bingo, 4 Septembre 2006
    #14
  15. Offline
    Ahava Revenant
    donc pour toi ca doit être fait coté serveur ? donc gardé en bd ?
    Ahava, 4 Septembre 2006
    #15
  16. Offline
    Bingo Beer Addict
    Oui, pour moi seule la session doit être conservée dans un cookie, tous le reste devrait se faire côté serveur.
    Bingo, 4 Septembre 2006
    #16
  17. Offline
    k o D Belge !
    k o D, 4 Septembre 2006
    #17
  18. Offline
    k o D Belge !
    Pour moi aussi.
    Imagine simplement le problème suivant:
    Un utilisateur de ton forum a désactivé un jour les cookies... et peut-être qu'il ne sait pas comment faire pour les remettre :-'

    Et heu... vu que je comptais faire aussi un forum perso... si çà t'intéresse contacte moi ;)
    k o D, 4 Septembre 2006
    #18
  19. Offline
    Ahava Revenant
    Tit up vu que j'y suis occupé : je le fais via cookie, c'est vraiment une option en plus si l'user veut, sinon, tant pis pour lui :p
    Ahava, 20 Mai 2007
    #19
Statut de la discussion:
Fermée.