[PHP] Forums : topics visités ou non : changement d'icone !?!?

Forums : topics visités ou non : changement d'icone !?!? [PHP] - PHP - Programmation

Marsh Posté le 26-08-2002 à 22:45:01    

La question a déjà était posée je crois mais je ne retrouve pas le topic :(
 
Voilà j'aimerais bien avoir la solution miracle pour afficher un icone differente suivant si un topic a été lu ou pas par l'utilisateur. Joce a l'air d'avoir trouvé un bon système mais j'ai essayé quelques trucs et rien de bien concluant.. alors si kk1 a une idée miracle (Joce ? :D) ou si kk1 a le lien du topic qui en parlait je veux bien...
 
Merci beaucoup !!! :)


---------------
Les prix du matos sur Internet et près de chez vous : www.france-hardware.com
Reply

Marsh Posté le 26-08-2002 à 22:45:01   

Reply

Marsh Posté le 26-08-2002 à 23:27:16    

Ben pour les topics lus, j'imagine qu'il y a une table dédiée à ça où est noté le nom de l'utilisateur, l'ID du topic et l'ID du dernier message dans ce topic. Idem pour les topics où on a participé.

Reply

Marsh Posté le 27-08-2002 à 08:15:11    

gm_superstar a écrit a écrit :

Ben pour les topics lus, j'imagine qu'il y a une table dédiée à ça où est noté le nom de l'utilisateur, l'ID du topic et l'ID du dernier message dans ce topic. Idem pour les topics où on a participé.



Oui, tout du moins c'est le système que j'utilise sur mon forum. J'ai une table dédiée aux enregistrements de position, avec 4 champs : id du membre, id du topic, id du dernier message présent lors de sa consultation, n° de la derniere page présente lors de sa consultation. Il suffit de faire une jointure sur cette table lors de l'affichage de la liste des sujets et de comparer l'id du dernier sujet actuel avec l'id du dernier sujet enregistré dans la table précédement décrite. Simple, efficace. Rapide quand c'est concu avec intelligence.

Reply

Marsh Posté le 27-08-2002 à 08:39:02    

il y a des mods pour phpbb pour faire ça par contre comme tu n'utilises pas la dernière version je ne peux pas te le donner faut chercher un peu ça doit exister aussi pour cette version :)
 
http://forum.2037.biz/viewforum.php?f=10
http://www.phpbbhacks.com/categories.php?version=1

Reply

Marsh Posté le 27-08-2002 à 11:31:02    

sur le site de hfr ca passe aps comme ca :
vu le nombre de personnes qui circulent si tu cree a chaque "vue" d'un topic une entree dans une bdd t pas sorti !!
 
d'après ce que j'ai vu il font ca en utilisant l'hitorique de ton navigateur :
 
comme les liens changent de couleur qd t'as déja vu la destination on dirais qu'il font la meme chose pour les icone mais apre comment ...ca ...

Reply

Marsh Posté le 27-08-2002 à 12:35:45    

jolly => cai stocké dans la bdd, kan tu changes de navigateur ou de paicai ca marche toujours...
seulement il stock un nombre limités de topic je crois (du moins pour ceux deja lus ou auxquels tu as participé)

Reply

Marsh Posté le 27-08-2002 à 12:54:18    

si tu veux le stocker avec des cookies un script (à adapter of course) est dispo là : www.piregwan.com/scripts

Reply

Marsh Posté le 27-08-2002 à 13:50:15    

Yack a écrit a écrit :

jolly => cai stocké dans la bdd, kan tu changes de navigateur ou de paicai ca marche toujours...
seulement il stock un nombre limités de topic je crois (du moins pour ceux deja lus ou auxquels tu as participé)




 
 
si tu y a participé c pas la peine de stocker car t'as ton id dans la liste des posteurs de ce topic !!
 
par contre je croit que j'ai dis une connerie !!
mais il stocke comment tous les messages "vu" (simplement vu)
dans des cookies ?? c pas possible ...
ou alors t'as plus d'un chiffre dans tes cookies !

Reply

Marsh Posté le 27-08-2002 à 14:08:15    

jolly a écrit a écrit :

si tu y a participé c pas la peine de stocker car t'as ton id dans la liste des posteurs de ce topic !!



Certes mais quand on affiche la liste des topics, je pense que ce serait une mauvaise idée d'interroger cette table (sans doute énorme et avec des infos dupliquée si on a posté plusieurs fois dans un même topic). Alors que si tu crées un table spécialement dédiée à cette fonction (à la manière de la table pour les topic consultés) tu récupère uniquement l'information intéressante.

jolly a écrit a écrit :

par contre je croit que j'ai dis une connerie !!
mais il stocke comment tous les messages "vu" (simplement vu)
dans des cookies ?? c pas possible ...
ou alors t'as plus d'un chiffre dans tes cookies !



Ben non dans une table. Pourquoi ça te choque qu'on ajoute une entrée dans une table à chaque fois qu'on consulte un topic ?


Message édité par gm_superstar le 27-08-2002 à 14:08:27
Reply

Marsh Posté le 27-08-2002 à 14:08:35    

bon finalement j'ai fait une table ds la bdd je v oir ce que ça donne.
 
un truc où pour chaque topic consulté on ajoute une ligne avec le topic_id, user_id et time()
 
en cas de nvelle reponse ds un topic on fait un ptit delete sur cette table pour l'aléger... fo voir en pratique maintenant :D


---------------
Les prix du matos sur Internet et près de chez vous : www.france-hardware.com
Reply

Marsh Posté le 27-08-2002 à 14:08:35   

Reply

Marsh Posté le 27-08-2002 à 14:25:59    

recapepetons :
 
j'suis intrigué par la gestion des messages sur le forum de Hfr :
et c'est ces icones
http://forum.hardware.fr/images/closedb.gifhttp://forum.hardware.fr/images/closed.gif
ce deux la indiquent si tu as été le dernier posteur de ce topic ou non
un simple test sur une requete SQL permet de le verifier je pense
 
 
http://forum.hardware.fr/icones/flag0.gifhttp://forum.hardware.fr/icones/flag1.gif
mais ces deux dernier indiquent si tu as lu le dernier message posté dans ce topic ( auquel tu es forcément déja allé )
 
ce qui m'intrigue c'est ces derniers :  
les infos concernant ces "flags" sont sur nos machines ou du moins partiellement car quand j'efface mes fichiers temporaires ils disparraissent !!
mais la ca me parais plus dur a gerer


Message édité par jolly le 27-08-2002 à 14:28:19
Reply

Marsh Posté le 27-08-2002 à 14:36:21    

jolly a écrit a écrit :

recapepetons :
 
j'suis intrigué par la gestion des messages sur le forum de Hfr :
et c'est ces icones
http://forum.hardware.fr/images/closedb.gifhttp://forum.hardware.fr/images/closed.gif
ce deux la indiquent si tu as été le dernier posteur de ce topic ou non



Non ils indiquent s'il y a de nouveaux messages depuis ta dernière consultation/participation.
jaune => pas de nouveau message
rouge => nouveaux messages => drapeau bleu ou rouge
rouge => couleur par défaut si le topic n'a jamais été lu
(au fait tout ça est expliqué en bas de chaque page de liste des topics)

jolly a écrit a écrit :

http://forum.hardware.fr/icones/flag0.gifhttp://forum.hardware.fr/icones/flag1.gif
mais ces deux dernier indiquent si tu as lu le dernier message posté dans ce topic ( auquel tu es forcément déja allé )
 
ce qui m'intrigue c'est ces derniers :  
les infos concernant ces "flags" sont sur nos machines ou du moins partiellement car quand j'efface mes fichiers temporaires ils disparraissent !!
mais la ca me parais plus dur a gerer



Ben faut voir ce que tu effaces... Si tu effaces tes cookies il est clair que tu ne vas retrouver grand choses.
 
En fait avec HFR, tout est géré du coté du serveur. Si je vais sur une nouvelle machine que je n'ai jamais utilisé auparavant, il suffit de m'authentifier pour retrouver l'état que j'avais laissé avant (y compris les drapeaux bleu et rouge)

Reply

Marsh Posté le 27-08-2002 à 15:01:10    

bon ok je m'incline ....
g t persuadé d'autre chose mais je viens de faire le test chez moi et il semble que tu sois plus dans le vrai que moi  :D  :jap:

Reply

Marsh Posté le 27-08-2002 à 15:03:44    

bon alors je relance autrement le topic :
 
les liens modifient leurs couleurs quand il ont été vu !!
y a t il moyen de controler ce changement de couleur ??
peut on recuperer le statut nouveau/deja-vu tel que le font les liens HTML ??

Reply

Marsh Posté le 27-08-2002 à 15:13:33    

Tu n'es pas le seul à t'être posé cette question : http://forum.hardware.fr/forum2.php3?post=24027&cat=10

Reply

Marsh Posté le 27-08-2002 à 15:32:07    

jolly a écrit a écrit :

 
 
 
si tu y a participé c pas la peine de stocker car t'as ton id dans la liste des posteurs de ce topic !!
 
par contre je croit que j'ai dis une connerie !!
mais il stocke comment tous les messages "vu" (simplement vu)
dans des cookies ?? c pas possible ...
ou alors t'as plus d'un chiffre dans tes cookies !
 




 
bah les 40 (a verifier...) derniers topics auxquels tu as participé ou seulement acceder sont stockés dans une table, certainement ke les infos stockees sont l'id du membre, le topic accede, le dernier msg kan tu y as accede, et si oui ou non tu y as participé
 
ca permet donc de gerer les icones ki indik si tu as accede ou non au message ainsi que les drapeaux

Reply

Marsh Posté le 27-08-2002 à 15:38:32    

jolly a écrit a écrit :

 
...
dans des cookies ?? c pas possible ...
ou alors t'as plus d'un chiffre dans tes cookies !




tu peux très bien mettre des infos "encodées dans tes cookies" style :

sujet1:25:sujet2:12 etc...

Reply

Marsh Posté le 27-08-2002 à 15:41:38    

black_lord a écrit a écrit :

 
tu peux très bien mettre des infos "encodées dans tes cookies" style :

sujet1:25:sujet2:12 etc...






 
un peu barbare qd mm !

Reply

Marsh Posté le 27-08-2002 à 15:59:49    

jolly a écrit a écrit :

 
 
un peu barbare qd mm !




 


forum_reminder
id1796A31Zid1797A4Zid1795A12Zid1728A9Zid372A26Zid675A6Zid1794A13Z
id1791A21Zid1793A7Zid1792A2Zid1790A12Zid1789A4Zid1788A3Zid1787A8Z
id1798A3Zid1779A15Zid1786A10Zid1785A8Zid1782A0Zid1783A5Zid1781A16
Zid1780A21Zid1799A12Zid1721A26Zid1784A24Zid1800A24Zid1801A3Zid180
3A17Zid1802A8Zid1804A6Zid1811A22Zid1807A32Zid1808A4Zid1810A10Zid1
809A11Zid789A3Zid1812A8Zid581A1Zid343A6Zid590A40Zid1813A27Zid1805
.....


 
Ca c'est barbare.. mais ça a le mérite de fonctionner
 
Edit - J'ai tronqué parce que ça démonte le forum sinon


Message édité par black_lord le 27-08-2002 à 16:00:49
Reply

Marsh Posté le 27-08-2002 à 18:01:14    

Ca doit certainement être plus rapide d'utiliser des cookies pour faire ça...
Et de tte façon je sais pas pour vous, mais je ne regarde que très peu souvent ces drapeaux... Donc je dirais qu'il s'agit d'une fct secondaire.

Reply

Marsh Posté le 27-08-2002 à 18:06:08    

Dost67 a écrit a écrit :

Ca doit certainement être plus rapide d'utiliser des cookies pour faire ça...
Et de tte façon je sais pas pour vous, mais je ne regarde que très peu souvent ces drapeaux... Donc je dirais qu'il s'agit d'une fct secondaire.



Si c'est bien codé un tel système n'est pas lent. Et puis c'est bien plus fiable. Beaucoup de gens surfent et à leur domicile, et à leur lieu de travail. Le fait que ce soit stocké en base apporte un gros plus.
 
Quant à l'utilité de cette fonction ... personnellement je ne peux plus m'en passer, et je crois que les visiteurs de mon forum gueuleraient bien si je la retirais :D

Reply

Marsh Posté le 27-08-2002 à 19:01:45    

Core 666 a écrit a écrit :

 
Si c'est bien codé un tel système n'est pas lent.



D'ailleurs, pour illustrer mon affirmation vous pouvez jetter un oeil à mon forum (http://www.forum-auto.com/sqlforum/index.htm). Quand je me suis lancé dans le développement de ce système, je pensais que ca boufferait un peu de ressource au fur et à mesure que ma base grandirait. J'ai donc fait 2 requêtes différentes, une avec la jointure (utilisée quand le visiteur est identifié), l'autre sans (la colonne qui contient les drapeaux n'apparait même pas dans ce cas là).
 
Et au final, les temps de génération des pages sont très très proches (malgré les 854 535 messages et les 138 447  enregistrements dans la table qui mémorise les positions). Il y a grosso-modo 3 centièmes de seconde de différence, et encore, vu qu'il y a toujours du monde de connecté je peux pas vraiment dire, même sur plusieurs essais.


Message édité par Core 666 le 27-08-2002 à 19:02:20
Reply

Marsh Posté le 27-08-2002 à 20:03:37    

j'ai pas lu ou vous en êtes mais sinon j'avais donné  une soluce avec cookie (qui fct très bien) dans ce topic
bonne lecture  :hello:  
 
http://forum.hardware.fr/forum2.ph [...] ubcat=#bas
10ième message en partant du bas
 


---------------
...oups kernel error...
Reply

Marsh Posté le 27-08-2002 à 21:23:45    

black_lord a écrit a écrit :

 
 


forum_reminder
id1796A31Zid1797A4Zid1795A12Zid1728A9Zid372A26Zid675A6Zid1794A13Z
id1791A21Zid1793A7Zid1792A2Zid1790A12Zid1789A4Zid1788A3Zid1787A8Z
id1798A3Zid1779A15Zid1786A10Zid1785A8Zid1782A0Zid1783A5Zid1781A16
Zid1780A21Zid1799A12Zid1721A26Zid1784A24Zid1800A24Zid1801A3Zid180
3A17Zid1802A8Zid1804A6Zid1811A22Zid1807A32Zid1808A4Zid1810A10Zid1
809A11Zid789A3Zid1812A8Zid581A1Zid343A6Zid590A40Zid1813A27Zid1805
.....


 
Ca c'est barbare.. mais ça a le mérite de fonctionner
 
Edit - J'ai tronqué parce que ça démonte le forum sinon




 
C'est stocké dans un champs varchar et tu l'explode() lors de la récupération, c'est ça ?
 
Si oui, comment fais-tu pour qu'il n'y ait pas de numéro de topic "coupé" à la fin ?
 
Je m'explique :  
 
Je suppose que lorsqu'un user visionne un sujet, tu récupères ce string, tu ajoutes l'id, la page et le dernier message du topic visionné au début de la chaîne, puis que tu la réinsères dans la base avec un UPDATE.
 
Au fil du temps, la chaîne va atteindre la limite des 255 caractères et la fin sera coupée, ce qui est bien en soi, mais comment faire pour qu'elle soit coupée après le dernier enregistrement complet ? Une regexp de la mort je suppose ?  :heink:  
 
Ou alors je me plante complètement ?  :D


---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6
Reply

Marsh Posté le 28-08-2002 à 08:57:30    

Ceci n'est pas mon système mais celui utilisé sur piregwan.com
 
C'est le contenu d'un cookie donc la limite de taille n'est pas si importante (4Ko)
 
www.piregwan.com/forum2 si tu veux voir ce que ça donne...

Reply

Marsh Posté le 28-08-2002 à 17:31:41    

Hmmm, je suis pas trop chaud pour le cookie.
 
Personne n'a fait un truc dans le genre de celui que j'ai décrit plus haut ?


---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6
Reply

Marsh Posté le 29-08-2002 à 01:18:30    

table topic_read:
user_id
forum_id
topic_id
last_access -> date
answered  -> 0/1
 
sinon à la place de last_access tu peux mettre l'id du dernier message présent dans le sujet lorsque l'utilisateur l'a visionné pour l'accès au dernier message lu.
 
pour la mise en pratique rien ne change de l'algo que j'ai donné plus haut (voir lien)


---------------
...oups kernel error...
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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