Envoyé par : Raphael
Date : 20/06/2008 22:55
Bonjour, actuellement je développe un module de Messagerie Instantanée très basique basé sur Jabber et Xmpp4moz.
Je parviens à changer ma présence, récupérer des messages envoyés, tout ça... Xmpp4moz est vraiment extra pour ça !
Mais je me demandais comment afficher la conversation ?
Je voudrais donc savoir quoi utiliser : Du HTML ? Comment ? Un truc en XUL fait pour ce genre de choses ? J'ai lu quelque chose sur un editor, mais je suis pas sûr que ça réponde à mes besoins...
Disons que si je pouvais afficher des Smileys, ce serait le fin du fin... mais c'est pas obligé.
Si vous me conseillez du HTML, pouvez-vous m'aiguiller sur le code ? J'ai du mal à voir comment mélanger XUL et HTML, et qui plus est, comment ajouter et faire défiler la conversation... =/
Merci d'avance.
Envoyé par : Paul Rouget
Date : 21/06/2008 11:39
HTML me parrait être une bonne idée. Une iframe avec une page HTML à l'intérieur ? Tu peux même mettre du HTML dans n'importe quel élément XUL (<html:...>).
Envoyé par : Raphael
Date : 21/06/2008 17:16
Et je fais quoi ? Je rajoute dynamiquement des entrées à ma page HTML ?
Genre si je fais des <li class="message_input/output">Message</li>, je les rajoute en manipulant le DOM ? Si oui, y-a-t-il une astuce pour scroller la page HTML contenue dans l'iframe vers le bas à chaque réception/envoi d'un message ?
Et pour l'affichage, je procèderais comment ? à la manière d'un forum PHP qui parse les smileys/bbcode pour les transformer en HTML ?
Envoyé par : clochix
Date : 21/07/2008 21:08
Bonjour Raphael, désolé de répondre si tard.
Je te conseille comme le dit Paul d'utiliser une iframe avec une page HTML. L'avantage est que tu pourras faire du copier-coller. Je développe une application similaire, dans un premier temps j'insérais du HTML dans une description, mais la sélection de texte pour le copier ne fonctionnait pas. Je suis donc passé à un document HTML dans une iframe et tout roule à présent.
Pour scroller la page automatiquement, utilise scrollIntoView.
Pour l'affichage des smiley, tu peux effectivement faire des remplacements de chaînes de caractère par des balises HTML IMG.
Je suis en train de transformer ce module en binding XBL, voici le source si ça peut t'aider : http://svn.gna.org/viewcvs/*checkout*/co(..)
Envoyé par : Raphael
Date : 21/07/2008 22:20
Sympa, ouais !
En fait, j'ai bien utilisé une iframe avec page HTML et ça marche plutôt bien =)
Pour scroller, j'ai galéré... j'ai finalement trouvé une bidouille qui me met une ancre "bottom" dans la page et à chaque ajout de message, je vais à l'ancre. Ca pourrait être mieux avec une animation ou autres mais bon pour l'instant ça me suffit, mais merci pour la piste scrollIntoView qui a l'air sympa.
Pour la sélection de texte en tous cas, c'est pas encore ça pour moi, car comme j'essaie de faire une jolie présentation de la conversation avec tableaux, CSS, etc... du coup, le copier/coller ne rend pas très bien mais j'améliorerai ça quand j'aurai le temps.
Je n'ai pas encore implémenté les smileys, j'aime pas tout ce qui est regexp, tout ça... T_T
En tous cas, j'ai bien avancé, je gère maintenant les MUC, et je parviens tant bien que mal à ajouter/supprimer des contacts Jabber,...
Merci pour ta réponse en tous cas, ça me fait penser de passer le sujet en résolu.
Envoyé par : laurentj
Date : 23/07/2008 17:51
Html c'est pas mal pour une conversation. Chatzilla utilise du HTML pour afficher les conversations IRC ;-)
Envoyé par : Christophe Charron
Date : 24/07/2008 21:36
Bonsoir, avant d'essayer de réinventer la roue, pourrais-je savoir si tu as pu te connecter sur des comptes gmail, et si oui, abuserai-je en te demandant quelques exemples de code ?
Envoyé par : Raphael
Date : 25/07/2008 08:45
Oui, en fait il y a une subtilité pour les comptes Gmail, qui est indiqué sur le Wiki de X4M.
Voilà, mon petit hack assez vilain mais qui marche a priori :
function getAccount() { /* * jid: full JID, including resource * password: password * connectionHost: host, if different from the domain part of the JID (ex: talk.google.com pour gmail.com) * connectionPort: port, if different from 5223 * connectionSecurity: 0 = no SSL, 1 = SSL (default) */ var jid = UserPrefs["User_Internet_Identity_Jid"]; var pwd = UserPrefs["User_Internet_Identity_Pwd"]; var domain = jid.substring(jid.indexOf("@",0) + 1); // Si c'est une adresse Gmail, l'Host est différent, il faut le préciser à la connexion if (domain == "gmail.com") { var account = { jid : jid + "/yLife", password : pwd, connectionHost : 'talk.google.com', connectionSecurity : 1 } } // Sinon, on retourne un compte standard else { var account = { jid : jid + "/yLife", password : pwd, connectionSecurity : 1 } } return account; }
Envoyé par : Christophe Charron
Date : 25/07/2008 09:50
Ok merci
Je me permettrai peut-être de te recontacter en privé pour éviter de tomber dans les mêmes errements que toi.
Mon adresse christophe point charron point xul at gmail point com
Envoyé par : Raphael
Date : 25/07/2008 14:22
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.