David_monchy
Messages postés214Date d'inscriptionlundi 20 mars 2006StatutMembreDernière intervention23 juin 2006
-
6 juin 2006 à 17:06
David_monchy
Messages postés214Date d'inscriptionlundi 20 mars 2006StatutMembreDernière intervention23 juin 2006
-
8 juin 2006 à 16:58
Bonjour à tous,
J'ai développé un chat ne permettant que des discussions à 2 (pas de chat général). Si l'on veut parler avec plusieurs personnes, il faut donc créer deux dialogues différents. J'ai donc géré ces différentes discussion grâce à un système d'onglets, comme Mozilla Firefox. Ce que je voudrais maintenant, c'est que lorsqu'un nouveau message apparait, et que l'onglet n'est pas actif, il change de couleur, ou clignote... La question est donc : comment savoir quand un nouveau message apparait dans une conversation? J'avais pensé à faire un test me permettant de savoir en temps réel (avec le xmlhttprequest) si la base à changée, et si oui récupérer l'id du dialogue, pour changer la couleur de l'onglet correspondant. Le problème est que je ne vois pas faire ce test, donc je me tourne vers vous... De même, si vous avez une autre idée d'algo, je suis également preneur.
Merci d'avance,
David
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 6 juin 2006 à 17:41
Hello,
je ne sais pas comment tu as géré ton bin's, alors ce sera une supposition :
je vais supposer que tu as une référence dans tes tables à 1 dialogue donné.
Et que, cliquer sur un onglet, c'est un évènement An, n étant l'id discussion par exemple.
Ajouter un message à une disvcussion, un autre évènement Bn.
Bref, mettre un champ 'LU' à ta discussion. Par défaut, il sera à 0 (pour non lu).
Quand Bn =>
SI onglet n est apparent (je suppose que ce sont des div...) (bref: display: block; par exemple) : LUn = 1;
Sinon, Lun = 0;
Quand An => LUn = 1;
pastis51forever
Messages postés172Date d'inscriptiondimanche 29 juin 2003StatutMembreDernière intervention 8 septembre 20061 7 juin 2006 à 09:22
Tu penses le partager?
En fait ca m'interesse ce systeme d'onglets, j'en ai fait un début que j'ai arrété faute de temps, il faudrait que je le retrouve... Et j'avoue n'avoir pas bien suivi la manière de faire de malalam
David_monchy
Messages postés214Date d'inscriptionlundi 20 mars 2006StatutMembreDernière intervention23 juin 2006 7 juin 2006 à 09:15
pastis51forever--> j'ai développé toute la partie discussion et l'interaction entre les différentes conversations avec les onglets. Il ne me reste plus qu'à changer la couleur de l'onglet dans le cas où il y aurait un nouveau message.
malalam--> ton algo me parait très intéressant. je vais opter pour cette solution. Je te tiens au courant.
Merci à vous deux
Bonne journée
David
Vous n’avez pas trouvé la réponse que vous recherchez ?
David_monchy
Messages postés214Date d'inscriptionlundi 20 mars 2006StatutMembreDernière intervention23 juin 2006 7 juin 2006 à 09:43
Malheureusement, celui-ci ne sera pas partagé, car j'ai développé ce chat pour l'entreprise dans laquelle j'ai fait mon stage (je suis étudiant en DUT Informatique), et les consignes de l'IUT sont bien claires: rien ne sort de l'entreprise. En revanche, je compte le refaire à ma sauce pendant mes vacances, et éventuellement le partager. Pour le système d'onglets, j'ai fait en gros comme ceci:
- Je répertorie les dialogues en cours
- Pour chaque dialogue, j'affiche un lien qui ouvre la page centrale
- J'habille les liens avec du css pour faire un onglet.
Voila, alors comme tu le vois ce n'est pas de l'onglet de luxe avec affichage de la page correspondante instantanément (je pense que ça doit être faisable en javascript mais je ne suis pas sûr), puisqu'il y a un temps de chargement lors du clic sur le lien correspondant, mais le rendu visuel de l'onglet est assez réaliste. En tout cas, sache que je suis disponible en MP si tu as besoin.
Bonne journée
David
David_monchy
Messages postés214Date d'inscriptionlundi 20 mars 2006StatutMembreDernière intervention23 juin 2006 8 juin 2006 à 16:58
Merci malalam, ton algo fonctionne a merveille... Désolé si j'ai été un peu long à le tester, j'ai du résoudre un autre problème avant.
Bonne journée,
David